Make seed loading task easier to extend

We need to load a user seed as well as just a bucket seed, change is
intended to make it easier to load more than one seed.
Add user model and repository

Add a user model and repository very similar to the bucket ones. Much
repition here, removing that is coming up next.
Extract common repository logic

Extract common repository logic into a separate class to avoid the
duplication.
Integrate user repository with admin api

Rather than retrieving user permissions from the config file get them
from the UserRepository.
Fix EVL feature tests

Add steps to configure upload filters and allow access to the buckets.
These tests could not work before but it wasn't noticed because the
upload features have been disabled due to the fact we can't set the
content type on uploads. This was tested by allowing octet-stream.
Update seed tool to generate user seed
Update seed loading task and add user task

- Update the `load_seed` task to also load the user seed file
- Add a new task to add user permissions
Rename repository method for clarity
Remove redundant collection drop

The database is dropped two lines earlier.
Remove Permissions class

This is now handled by UserConfig
Do not call clamscan in tests

Updating the virus database on each test run is causing the build to
overrun in travis. Also, we should not need to write tests to verify
that clamscan correctly identifies viruses in the application. If we
feel we need to test that it should be done somewhere else.
Merge pull request #156 from alphagov/automate-user-creation

Store user permissions in a database