Improve our resolver_match lookup.

The resolver_match lookup wasn't correct. We were still failing if it
was None, since we were only checking for existence.
Upgrade the Django dependency to 1.6.2.

1.6.2 just came out, and fixes a number of bugs. This updates our
dependency to require this version.
Fix issues with column registration and subclasses.

The column registration had a nasty bug when used with subclasses of
subclasses of DataGrid.

If a subclass was being used as a normal datagrid, rendered on a page,
it would populate its registry of columns. If a subclass of that was
then used, it would inherit the registry, ignoring any custom columns
that it may itself provide.

Instead of storing the column registry on the datagrid itself, we now
have a map of classes to columns. We can then reference those registries
by the specific class we care about, instead of inheriting registry from
parent classes.
Fix problems with the "New updates" flags showing up too often.

When replying to a review, if one waited long enough, they'd see a bubble pop
up that said "New updates by me". The issue here was that we were setting the
last updated time to be a time that included milliseconds, and then we'd later
fetch the last-update resource, which would give us a time that didn't include
milliseconds. Since those didn't match, we'd show the updates bubble.

I've changed the API encoder to never include milliseconds in serialized
datetimes. This makes it so that the data we send after saving a new datetime
field to the database is the same data we send after reading it back from the
database.

Testing done:
* Replied to a review and saw that it was setting the lastUpdated time to a
  timestamp that didn't include milliseconds. Waited to see it do a
  last-updated check and didn't see the updates bubble.
* Ran djblets unit tests.
* Ran reviewboard unit tests.

Reviewed at https://reviews.reviewboard.org/r/5438/