Http message cleanup

Various cleanups for the HTTP message spec, as discussed on the mailing list.
Okay, I am going to summarize the above into the following statement `We want URLs to be either a plain string or a Domain Object (or Value Object)`.

In this case you can summarize that by `@return string|object` but this does not address the requirement that the Domain/Value object _must_ have a __toString method.

My suggestion would be to add an interface `UrlInterface` (or similar) that acts as a contract for a Domain/Value object if you'd want to use one that, at least, includes the `__toString` method. When you then have an return tag `@return string|UrlInterface` then it is clear what is expected.