Improve option parsing to support params

Previously, the result of the `#parse!` call was essentially a no-op,
since it returned the items not consumed from `args`.

This adds an outer `options` hash, which the parser populates on
parsing. Presently, there are no options being read by the parser that
need to be persisted, but those are coming soon.

Additionally, this adds `--help` and `--version` flags.

While I was here, I extracted some of the lint-running code into a
private `#run` method, since the `#initialize` was getting a touch
unweildy.

Change-Id: I930e3c9210a14677f3d9558df6909114a1017ffc
Reviewed-on: https://gerrit.causes.com/19319
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Joe Lencioni <joe.lencioni@causes.com>