Classes with custom metaclasses can be used in schemas

Currently, one can use a custom class as a schema, for example:

```python
class Thing(object):
    pass

schema = Schema(thing)
schema(Thing())
```

However, this fails if the custom class has a custom metaclass, due to a hard check for <code>type(schema) == type</code> For example:

```python
class MyMeta(type):
    pass

class Thing(object):
    __metaclass__ = MyMeta

schema = Schema(thing)
schema(Thing())
```

This is a small fix, with accompanying tests, to allow classes with custom metaclasses to be used in schemas.