Switch to using whitenoise instead of Werkzeug for static files

This gives us caching for these files, as well as precompressed responses.