Move the diff highlighting code out and fix position problems.

The diff highlighting now lives in a ChunkHighlighterView object.
This takes a chunk element (a tbody/thead in the diff viewer) and
surrounds it with black borders.

This is a port of the old code, but with some fixes and changes.

The old DOM mutation events are no longer listened to, as they don't
seem to be needed, from my testing.

The positions of the borders are no longer off by several pixels on
every browser. tbody dimension calculation is horribly inconsistent
across browsers, so we're now using the table's left and width. That
takes care of the most noticeable problems. I've also done some tuning
to make the vertical position work properly across Chrome, Firefox and
IE.
Fix up all the diff viewer anchor code.

The diff viewer anchor code was in a semi-working state. There were
still calls to the now-removed 'gotoAnchor', which errored out, and
there was a hacky global function for the individual DiffReviewableViews
to scroll anchors.

Now the views handle all anchor click events. DiffReviewableView
triggers events when the file header or a chunk is clicked, and
DiffViewerPageView reacts to that. The PageView also handles all clicks
from the index that comes before the diff.