Make specifying config better

Currently config is passed in via command line args or env vars.  This was fine for the start but already we have had two more added.  Also, this doesn't really cater for different environments.  It would be better if we specified config options in a deployment config file in the project.

This is the first attempt at that.