When serializing objects with expand, convert QuerySets to lists.

Serializing objects and expanding fields stored the fields as QuerySets
(when appropriate), but this meant that if something modified that list
before it was returned to the client, the data could change. It wasn't a
suitable snapshot. Now we convert to a list during serialization,
preserving the value at that moment in time.
Release Djblets 0.7.14.
Add .pyc files to gitignore.
Add a is_webapi_handler field to WebAPIResource.

This field allows for introspection by middleware to know that a view
it's about to call is a WebAPIResource subclass.

Reviewed at http://reviews.reviewboard.org/r/4135/
Reset the template loader cache when reloading extensions.

When using Django's template loader cache, it's possible to end up with
stale templates after replacing an extension. We now clear the cache
when enabling/disabling an extension, or when we see that another thread
has done so.
Clean up Extension unit tests docstrings.

The unit test docstrings weren't formatted correctly, as they wrapped
multiple lines and got cut off when running the test suite. They also
were just unnecessarily wordy in places.

I also combined a few tests that were a bit too piece-meal.
Add Extension-level configurability of metadata.

Extensions were taking the parent package's metadata, but this meant
that a package could only contain one extension, which is annoying.
Technically, they could contain more, but each would get the name,
version, etc. of the main package itself.

Now, an Extension can define a metadata dictionary that contains the
information. The keys/values are in the form of standard PyPI package
metadata. This will let us stay consistent in how we represent metadata
across all packages, which will be important later for an extension
store.
Allow TemplateHooks to choose how they want to render contents.

TemplateHooks could previously only supply a template_name, and nothing
else, for rendering. This severely limited them.

Now, rendering is handled in TemplateHook's render_to_string function.
By default, this will simply render the provided template, but an
extension can subclass TemplateHook and override this.

Also, template_name is now an optional parameter.
Release Djblets 0.7.15.
Clean up some of the datagrid code.

This is a minor cleanup that reduces all the "this" confusion by
assigning real variables to things as quickly as possible, and reduces
all the "var" statements everywhere. It also adds the "$" prefix to
jQuery-wrapped elements.
Add a reload() function for datagrids.

This adds a reload() function that can be called on a datagrid element.
It will trigger a dynamic reload of the grid using the server-side
settings.
Improve several of the widgets in jquery.gravy.

autoSizeTextArea no longer leaves the proxy elements sitting around in
in the <body> tag when it's destroyed.

inlineEditor can be told not to focus a textarea by default by setting
focusOnOpen to false.

modalBox can be told to place itself in a container other than <body>.

modalBox can also take an ID for the outer modalbox container.

funcQueue now takes an optional context for the callbacks.