Improve config and how we talk to the database

* Use object pattern for config
* Create DatabaseConnection class to db connection config
* Remove Flask-SQLAlchemy, don't need it
* Associate db with app and remove session on app teardown
* Use factory pattern for app creation
* Use seperate module for registering assets
* Fix bugs associated with changes
Use CDN for font-awesome and remove static css files
Add alembic for migrations
Config alembic so it plays nice and keeps track of changes