Render markdown fields for HTML emails.

This change adds some slightly questionable code to render markdown to HTML for
the HTML emails. Annoyingly, python markdown doesn't interpret the input quite
the same as marked.js, so some things don't render the same (this is mostly
edge cases, particularly with the treatment of things like whether lists
require a blank line before them or not).

This includes a simple extension for python-markdown that will go through the
resulting element tree and add inline styles. These styles are similar to what
we get from reviews.less, but somewhat simplified.

Testing done:
Viewed the html email previews for review requests, reviews, and replies with
markdown in the review request fields, review body_top/bottom, and comments.
Saw all of the fields rendered to markdown, instead of seeing all the control
and escape characters.

Reviewed at https://reviews.reviewboard.org/r/4844/
Fix the size of the floating collapse button in the diff viewer.

The floating collapse button, when in position: fixed mode, was
appearing as wide as the remainder of the diff viewer. This was due to
not specifying any width, which the old one did (as it was an <img/>
tag). We now specify that width/height appropriately.