Multiple payload content types

This PR allows a user to specify a payload to send to the api as the request body.

In order to do this, I have allowed 2 options:

`WithPayload(string contentType, string payload)`

and 

`WithPayload<TPayload>(TPayload payload) where TPayload : class`

The first allows you to specify the content type of the payload (as a string), along with the payload itself (as a string), the aim here is to allow you to send whatever you want. Obviously, this could lead to all sorts of type - payload mismatches, and also goes against the idea that we want this to reflect what the api can do, so would like this to be locked down. 

Which brings be nicely on to the second method. This allows the adding of a Schema entity (i.e. `Artist`) as a payload and defaults to serialize as XML (for now, see issue #104 for a discussion on this from a response deserialization point of view). The idea is that *all* requests/responses will default to Xml (as does the api), and in the future we'll be able to tag a Schema item as [Json], to default to json for both.

Therefore, in my eyes, the first method is a stepping stone to allow me to get to the second stage and *should* be removed before the next full nuget release, but if anyone thinks it should be left in, let me know.
 
Also - forgot to mention - to make this backward compatible, any `POST` or `PUT` requests that have Parameters specified will automatically default to `Content-type: application/x-www-form-urlencoded`, with the parameters used to sign and sent in the normal way, even if you specify a Payload. A future release may, for example, enforce this by throwing an error if you have specified both.