Http message cleanup

Various cleanups for the HTTP message spec, as discussed on the mailing list.
imo: The intention for this method is to return a string that represents a URL; as such string would be the right type. For me the addition above is ambiguous as I do not understand why an object may be returned that has a method `__toString()`.

That an object may be contained in this class that can be transformed to a string is an implementation detail and not something that is important for an interface.

_IF_ for some reason an object may be returned that besides __toString is allowed to do other things (perhaps a Value Object?) then my suggestion would be to have another interface that encompasses __toString, require that and have the return type reflect that (for example: `@return string|sluggable`)

For me, the above DocBlock could use additional details on why a separate object is allowed if there is a specific use-case