Extract views into different files
This commit splits up views.py as it was getting to big into different modules. This makes code mode readable, easier to track down changes. It also makes autocomplete more useful, same for typing.
In addition, remove all unused impports, sort imports, and remove wildcard imports.