Fix serialization issues by adding json converters

Deserializing the domain objects broke due to the fact that they now have
interfaces as properties and json.net no longer knew how to deserialize
them.  To fix I've added a couple Jsoncoverters to deserialize the
interfaces to the concrete types.