Added map linking functionality (passing var only)

- Created an image map to make each room in the map a link
- Passing the room to the map.html page, but not using it yet
- Made the dictionary definition in its own python file
- Still need to make a highlight box / show info for /map/###
Reset password bug fix

- Resetting password did not work, because session variable was renamed
- New passwords can no longer be empty strings. In the future, probably should
  have a (larger) minimum length.
New login decorator

- Login decorator to enforce 'private' pages
- Redirect to page after logging in
- In the future, this decorator can incorporate different access levels
Display a user's offices on their userpage

- Display a user's past and current offices on their userpage.
- Refactored view user code a bit. Might be able to clean up the get_user_info
  helper function.
Hide user_id on userlist page

Since user_id has no purpose on the public site, there's no reason to display
it to the user.
Access levels and login decorator updates

- Logging in now sets your access level. Currently, this is set to the
  maximum access level of all of your offices. This does not check that you
  are still active, which should be changed (???). If you have no office,
  then you are access level 2. Access level 1 is for on-campus-network, and
  access level 0 is for random people.
- Login decorator updated to use access levels. If a page specifies a
  specific access level, then only users with that level or higher can
  access it. Alternatively, if a page specifies a specific username, then
  that user is able to access it (regardless of access level).

TODO: Set access level to 1 if someone is on a campus network.
TODO: Only set the access level for ACTIVE offices?
Changed how offices are displayed in view_user page

- Just some asthetic changes
Fixed some edit user parsing stuff

- No longer get int errors (hopefully)
Use the URL's user, not the session's user

- Since now we can edit other user's information, need to use the URL's
  username, not the sessions username.
- New helper function, auth.get_user_id(username, db), to get a user's ID
Link to edit user information if permissions

- Display "Click here to edit this information!" if you have permissions
- Made access level code a little more general (separate function to check
  permissions, which the login decorator now uses).
- New constants.py file to store constants (e.g. AL_EDIT_PAGE, to store the
  necessary access level to edit a page).
Added room detail functionality - displays occupants

- Split the map view into two columns when room selected
- Now displays list of all occupants of that room
- Occupant names link to their view_user page
- Occupation solely based on recorded building/room_num
- Currently rooms are just links, no mouseover event
Changed SQL query for house occupancy

- Using Eric/Mike's suggestion of "LIKE '%ruddock%'" for matching
- Closes #4 at least for first round