Refactor Werkzeug requirement into flask

This is a PR for discussion is a rewrite of the code base that removes Werkzeug and replaces the server code with a Flask implementation - see issue #38 .
Why do we have a config.py? Isn't this a deployment option? I would say we should follow the existing pattern as much as possible for the initial change, and do all of our configuration via the server CLI. Deployment is a separate issue we can deal with later.