Support type objects in isinstance().

E.g. isinstance('',types.StringType) will return true now instead of
raising a TypeError exception.  This is for JPython compatibility.
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index f2839ac..4019559 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -1627,18 +1627,23 @@
 
 	if (!PyArg_ParseTuple(args, "OO", &inst, &cls))
 		return NULL;
-	if (!PyClass_Check(cls)) {
-		PyErr_SetString(PyExc_TypeError,
-				"second argument must be a class");
-		return NULL;
+	if (PyType_Check(cls)) {
+		retval = (inst->ob_type == cls);
 	}
-
-	if (!PyInstance_Check(inst))
-		retval = 0;
 	else {
-		PyObject *inclass =
-			(PyObject*)((PyInstanceObject*)inst)->in_class;
-		retval = PyClass_IsSubclass(inclass, cls);
+		if (!PyClass_Check(cls)) {
+			PyErr_SetString(PyExc_TypeError,
+					"second argument must be a class");
+			return NULL;
+		}
+
+		if (!PyInstance_Check(inst))
+			retval = 0;
+		else {
+			PyObject *inclass =
+				(PyObject*)((PyInstanceObject*)inst)->in_class;
+			retval = PyClass_IsSubclass(inclass, cls);
+		}
 	}
 	return PyInt_FromLong(retval);
 }