Correct return types.

Correct return types both in doc blocks and code if possible.

For methods like etag() I would rather like to simplify the return type from `@return string|null` to just "string" for example, though. Especially where there cannot be any empty valid strings or '0' strings involved.
If there is evidence of a tangible benefit for changing return to `return null;` - I'd be quite happy to change everything to that. Despite being more or less a noop.

But in the absence of that, I'm :-1: on these changes, as it's just change for the sake of change.