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 .
We've lost a lot of functionality from the original implementation here. Can we update to include CORS support at a minimum? It should be possible to port the Werkzeug implementation fairly directly. One possible approach might be to just reuse the existing method as much as possible and worry about making it Flaskier later. Flask is built on Werkzeug, so there shouldn't be too many compatibility issues.