Add a wrapper class around the registrations table.

Create a base wrapper class, and a specialisation for it that uses
the planned schema for automatic account creation. Also tests.

Note that neither this class nor its tests will work until the schema
changes are made.

Change-Id: Idb9854315a3958d861d4860b8ff64d6363ac31df
Add assertion for clarity.

Change-Id: I31e75da9466c196fb1f4ac0a1dde204636c43ff6
Remove debug print.

Change-Id: Id011f7464b2b6c1217bf100f4aa5f0e337b36c69
Have /registrations create placeholder accounts immediately.

This partially replaces the previous functionality of waiting for a
Blueshirt to manually create the accounts. We now create the account
and email the user an activation link (the endpoint for which is not
yet implemented).

Change-Id: Idc10d3bf98aceb6b464a7d0c277b69ee006ea407
Also email the teacher about the new account.

Modify the dummy mailer & add a helper to cope with a single request
sending multiple emails, and ensuring that their order is predictable.
Also update the spec to mention the emails that are sent during
the registration request.

Change-Id: Ifd200bc4fe40f9ddbefed777f05ced83650d6f6d