Hide Piccolo.HttpResponseMessage.Message property

**This pull request includes the commit from https://github.com/opentable/Piccolo/pull/44** the reason being that it was that story which lead to the need to expose the Location header, which is further supported by this commit.

The change here is to stop exposing the Message property of Piccolo.HttpResponseMessage<T>. This property is a System.Net.Http.HttpResponseMessage, which has many properties of its own, only a few of which are reflected in the final HTTP response sent down the wire by Piccolo.

I have made this property internal, and exposed the bits that are actually used as properties on the Piccolo.HttpResponseMessage<T> instead. This has the added benefit of abbreviating constructor calls and retrieval of the property values.

In order to support existing usage in the sample project and unit tests, I have overloaded the constructor of Piccolo.HttpResponseMessage<T> to support all used scenarios. It is possible that some of these (e.g. those without a status code) may be removable in future, if we update some of the tests that don't currently set the status code.