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.
There's no way to differentiate between a `null` and `void` return value. So for all intents and purposes they are the same.