admin: Fix wrong license
admin: Define model views and their UI

Instead of using an OrderedDict that may confuse the user, provide the
following two settings:

* ADMIN_VIEWS: The enabled model views and their corresponding labels
* ADMIN_VIEWS_ORDER: The UI order of these views.

Using the above two settings, we can construct an OrderedDict for our
purposes.
admin: Further explain admin groups

Explain what are the admin groups (ADMIN_READONLY_GROUP,
ADMIN_HELPDESK_GROUP, ADMIN_GROUP) and what the permitted admin groups.
admin: Reword comments for various admin settings
admin: Change detailed stats URL
admin: Create folder for resources

Move the user/vm/project/... folders to a folder called "resources".
admin: Add 405 page for json/... urls

The urls that start with "json/..." are intended only for use with the
Datatables API. If a user requests this page from his/her browser, throw
a 405 page.
docs: Explain the difference between ADMIN groups
admin: Import exceptions from the same file

Use exceptions.py as the file to import admin exceptions from.
admin: Get subclasses of AdminJSONView properly

In the `views.py` of each resource, add a JSON_CLASS attribute that
holds the class that will be used for the /json/... requests.
admin: Reduce logging levels

Switch logging from info to debug in various places in the code. Also,
simplify the check for permitted user groups in the
`admin_user_required` decorator.
admin: Align auth_providers/groups with resources

Split the auth_providers.py and groups.py to four different categories:
views, filters, actions, utils. This split aligns these files with the
rest of the resources in the `resources` folder.

Note that due to the simplicity of these resources, the actions, filters
and utils files are left blank.