Add support for Location header.

This pull request adds support for only the Location header, rather than allowing any arbitrary header to be passed through to the response.

Location header is always required for cases where a POST (but not a PUT*) results in a 201 Created response, as per [the spec](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).

Whilst implementing this, I got wondering if the strongly-typed Piccolo.HttpResponseMessage<T> should expose the full System.Net.HttpResponseMessage via its Message property. This seems a bit confusing since you can set many different headers in the System.Net.Http.ResponseMessage, but they are then ignored by the remainder of the processing (except for Location header after this commit, of course).

I might try wrapping this up and send another pull request if it looks sensible...

*[In the case of a PUT, however, Location probably should not be required](http://lists.w3.org/Archives/Public/ietf-http-wg/2012JanMar/0856.html), as it would be equal to the request URI, so would be extraneous data.