Add argument parsing and rework default config

Configuration defaults are now programmed into the application code
instead of being specified in a default file. This way, an initial
configuration file can be created in the user's home directory on first
run, which is more intuitive for new users.