config: refactor config loading to allow config file as cmdline argument

The option parser now sets config options directly on the wkline struct, and
any user-specified config filename is passed on to the JSON config loader.

This commit has required adding some default values and checking for defaults
to still allow the command-line arguments to override settings in config.json.

Ref #50, #51