Add formatter API.
Make options be boolean switches by default.
Add parse member function that handles errors.
Add list and compose factory functions for a list of arguments and
a composing list of arguments.