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>. This is a small fix, with accompanying tests, to allow classes with custom metaclasses to be used in schemas.