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.
In case this is of any relevance, some IDEs that implement inspections for inconsistent return statements will mark such implicit null returns as possible errors, as it's hard to tell whether the function is really intended to return null at that point.