Add an approved flag for the candidates in the database

- Add the corresponding alembic revision
- Update the Candidates.by_election method to allow filtering the
  candidates returned by their approval status
Adjust the API to allow filtering the candidates of an election based on their approval

Fix the unit-tests accordingly
Port the flask application to only retrieve approved candidates
Bring back the admin_new and remove admin_open

The admin_new method is used by admins to create new elections.
The admin_open method is used by admins to open elections to vote.
The later is no longer of used since we're now using the date
set when creating the election.
Inform the user and admin of the open dates for elections/results in the lists of elections
Add a motif for the approval/denial of a candidate
Add possibility to review submitted candidates

This is done via the admin panel, user can check one or more candidates
and then approve or deny all of them.

We do not enforce requiring an user to provide a motif upon denial, but maybe we should.
Add a little more doc on how to review
Make sure the admin provides a motif for denying a candidate
First attempt to allow editing the information related to an election
pep8 fixes
Little pep8 fix as well as query fix
And pep8 fixes in the alembic versions
Update the existing election to add election_date_start and election_date_end
Enforce the nullable=False on the election dates
Add a field candidate_license to the Candidates table
Add a candidate_submitter in case the author of the artwork is not the submitter
Increate configuration options

- Add a list of extensions allowed for the files uploaded
- Add a list of MIME types allowed for the files uploaded
- Add a minimal width required for the image uploaded
- Add a minimal height required for the image uploaded
Add a form to submit candidates
CSS improvements

- Add a warnings class
- Add the css for the contribute tab
- Add a small class