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.
@ADmad I don't think it would work that way around, at least not without adding IDE specific non-standard tags. Personally I don't see anything wrong with adapting code here to assist inspections, it's not like there are any logic changes or something like that, it's just adding a little more strictness to the code, and that's a win-win if you ask me, developers can immediately see that the code is intended to return null at a specific point, and automated inspections can properly analyze it.