Many updates to the user list page

- Individual rows now change color when hovered (using only css)
- Individual rows now link to the user's page
  - a map from user_id to username is passed to the template, which allows
    the template to link to a particular user's page.
- Sorting is now done in the SQL call, rather than in the template
- Template code is now not hard-coded. The python code has a list of columns
  and their display values, and the template code simply iterates over the
  list. This is nice, since we shouldn't have to change the template code
  very often.
- Python code is cleaner and better