Handling deserialisation to Interfaces and Abstracts

Hi.

I've added the ability to deserialize to Interface (or abstract) targets. This is useful for Client/Server apps where they only share interface definitions and no real code.

This is similar (although a bit newer) to contributions I made to ServiceStack.Text.