Add a bunch of new features, as per requests.

Summary:
The requests are from
   https://trello.com/b/OXneedik/snippets-improvements
:

1) Allow users to specify snippets are in markdown rather than plain text.
   Also, show a preview when writing markdown.
2) Allow user-settings saying whether a snippet should be private by
   default.
3) Allow user-settings saying whether a snippet should be markdown by
   default.
4) Put a big red warning on the snippet-entry page, if you haven't
   specified a category yet.
5) Ignore case differences when grouping snippets by category.
6) An admin page for managing users.  This involves support for hiding users.

To facilitate the above, I made the following architectural changes:

* We now store the create-time and the last-modified time of snippets
  and users.
* We move some (but far from all!) styling from inline html to css, in
  a new css file.

Test Plan: ./snippets_test.py

Reviewers: alpert, chris

Reviewed By: chris

Differential Revision: http://phabricator.khanacademy.org/D12893