Convention-based type resolver for Data Contract serializer

Resolves #94.
From MSDN:
* [InvalidOperationException](http://msdn.microsoft.com/en-us/library/system.invalidoperationexception.aspx): The exception that is thrown when a method call is invalid for the object's current state.
* [ArgumentException](http://msdn.microsoft.com/en-us/library/system.argumentexception.aspx): The exception that is thrown when one of the arguments provided to a method is not valid.

I would say `ArgumentException` is better in this case.