Registration system

* Registration system: allow students to register for courses. Allow course administrators to close registration and to set a password for registration.
* Settings page: allow course administrators to modify basic settings of the course, like name, accessibility of the course, registration password...

Bonus:
* Administration refactor. Each page of the administration is now in a specific file, in a dedicated package. Removed lots of duplicate and dead code. Improve security (by design).
* Database updater, needed to register the students to courses that they already follows.

(I will now use pull requests to allow @anthonygego and others to check big changes before I merge them with the master branch)