Use duck typing in error classes

Let each class decide how to describe the error, rather than forcing SchemaError
to have knowledge about another class.

I've left SchemaError.aggregate in place to avoid breaking uses external uses
of it, although it no longer has much purpose.
Merge pull request #8 from jamiecobbett/use_duck_typing_in_errors

Use duck typing in error classes