Inital hack at merging in TestConfig

This moves the TestConfig methods into OptionParsing, so that all
configuration is in one place. TestConfig brought nested default hashes
with it. In trying to surface all that via the config file and writing
recursive merging of it, I went down a path representing the
configuration as an object instead of a set of hashes. With mixed
results... I think it could be nice if cleaned up.