Improve the implementation of help printing.

Review Request #1744 — Created Feb. 10, 2015 and submitted — Latest diff uploaded

areitz, jsirois, lahosken, zundel

- Encapsulates the various help request options (advanced, all)
in a HelpRequest object.
- Create two help formatter classes, one for basic help and one for advanced help,
to avoid futzing with global state.
- Moves all help-printing logic into Option. Previously some of it
had leaked out into GoalRunner.

This is more-or-less what I had in mind in my comments on (although this is a little bit wider scope).

CI passes:

Ran various help cmd-lines and verified that they printed what I expect.