Basic json support for payloads only

This PR will allow a user to specify one of two out of the box `IPayloadSerializer` strategies (i.e. `Json` and `Xml`). It defaults to `XmlPayloadSerializer` and using `Newtonsoft.Json` to handle the Json serialization.

I was going to try and do both Request and Response de/serialization in one PR, but they are 2 quite different animals.

This work is to just get the engine for handling json in place, rather than how we implement the client interface re issue #104 

I will supply the "Accept -> Response" version if we're happy with this, which will work in a similar way, in as far as the "Accept" header mime-type will be locked down to either `application/xml` or `application/json` rather than relying on content negotiation for now. This is mainly because returning json relies on us having decorated the Schema DTOs with the correct `[JsonProperty]` (etc) attributes in order to deserialize as expected.