Allow Extensions to extend the WebAPI

Review Request #1648 — Created June 8, 2010 and submitted — Latest diff uploaded

Information

Djblets
extensions

Reviewers

This diff relies on this review request:  http://reviews.reviewboard.org/r/1618/diff/6/
And also integrates http://reviews.reviewboard.org/r/1623/

We want extensions to be able to extend the API with their own resources.  So if I have an extension RBDefects, with a resource Defects, I could access that resource here:

ROOT/api/extensions/rbdefects.extension.RBDefectsExtension/defects/

Each resource is keyed to the extension they belong to, so requests to /api/extensions/[anything but rbdefects]/defects/ will return a 404.

Extensions define their own resources, and then supply them to the Extension through a class list called "resources".

This patch also includes code to create new tables for extension models.  Evolve has not been integrated, since I'm still working on refactoring it to work nicely.
Performed rudimentary tests with an extension with multiple resources.  Seemed to work out.