WIP: Initial API for refactored ProgramOption

Now allows a union for float/string/list argument. Getting/setting API not yet
finalized. Builds, but won't run.
WIP: More refinements on new API

Falling into place, lacks documentation and test cases.
Tweak new API a bit, add documentation
Add test stubs
Finished tests for new ProgramOptions API
Update MrsWatsonOptions for new ProgramOptions API
Fix printing default values for options
Make data field private, use getters instead
Formatting
Fix --suite option in test runner
Add method to set parameters on head plugin in chain
Error checking when setting parameters

Includes a two shiney new test cases!