Convention-based type resolver for Data Contract serializer

Resolves #94.
Is `InvalidOperationException` the correct exception type to throw here?