Extended admin interface further.
Specify the file size in the download view.
Made package name searchable, too.
Added an optional label field to the CIDR model to be able to remember what those IPs are.
Refactored the permission handling.

- Stopped monkeypatching the dispatch function of the class based views and use a mixin class instead.
- Added view_package and view_cidr permissions and fixed CIDR permission checks to use the right ones.
- Added 403 template and fixed the 404 and 500 templates to use the right base template.
A few template fixes to layout and style.
Implemented credential system.

- Added Credential model with access and secret key, CRUD interface and auth backend able to check them.
- Refactored handling of basic auth request headers.
Added post_delete signal callback to delete old files when packages or releases are deleted.
Refactored serving static files (css etc) to use Django's own staticfiles view.
Also changed a few default settings as they weren't making any sense (e.g. MEDIA_ROOT being set to the project root).
Set the STATIC_ROOT in the config generator to be able to serve the asset files with a real webserver alternatively.
Generate a secret key when generating the config to reduce the risk of a breach.
Actually save updated timestamps for packages
Stopped using utcnow as the way to set the update timestamp as it's technically wrong (a naive datetime in UTC).
Added a task to periodically update non-local packages
Set prefetch to False when downloading files from pypi.python.org to support newer versions of requests
Refactored the setting handling to use django-configurations instead of logan.
Updated celery.
Raise a 404 if no package can be found on PyPI.
Add a Procfile.
Fixed typo.
Another attempt to fix the requirements.