Support end-of-options `--` and stdin `-` in cat

Previously, stdin was implicitly used if no file paths were
provided. This commit adds support for explicitly signalling the
end of options and stdin.

The first occurrence of `-` is also treated as an implicit
end-of-options signal.