Add DB to database.py

Add a sqlalchemy model for the "DB" database, which represents a
user's database in sql.mit.edu.
Improve not-signed-up error message

Now include the username, rather than the generic "you", which is
inaccurate when manipulating a group account.
Rename DB to Database

Although the SQL table is named "DB", we're not bound to the same
naming conventions, so go ahead and make the name more descriptive.
Implement password-setting remctls

This commit adds the ability to set passwords for users, affecting
both the metadata table and the actual MySQL user. This commit also
includes the following refactoring:

* Added method ensure_authorization, which raises an Exception unless
  the user is authorized

* Added method get_user, which ensures that only one user exists in
  the database. This method raises an Exception if 0 or greater than 1
  user is found.

* Implement the "is-auth" remctl, which allows a user to verify
  they're authorized on an account.

* Capture Exception in the main body, and return them to the caller
  properly formatted

* Add multiple identities to the program currently known as "account",
  which allows two-part invocations by remctl that make sense. Also,
  add a "password" symlink.
Fix whoami functionality

The previous commit broke "remctl sql whoami", which takes no
target. Introduce a hack to add an empty target to whoami.