Add a get_change method to SCMTool and HostingService

This change adds the final piece of integration API on the backend that we need
for post-commit reviews--the ability to fetch the commit message and diff from
the version control system given a revision ID. This is implemented for SVN and
GitHub, just like the get_branches and get_commits methods.

Testing done:
- Ran unit tests.
- Used this with my post-commit UI for both github and svn repos.

Reviewed at http://reviews.reviewboard.org/r/4284/
Move the diff viewer whitespace toggles into the new objects.

The Show Whitespace Changes and Show Extra Whitespace toggles now live
in the new objects and interact with the DiffReviewableViews to change
the state.

The cookie management now lives in UserSession. Callers just need to set
an attribute and it will update the cookie. This change introduces
jquery.cookie for actually setting and getting cookies, because
JavaScript's native cookie support is terrible.