Add a hook for extensions to register administration widgets.

This introduces AdminWidgetHook, a new hook that extensions can use to register
new widgets for the administration UI. Once the extension is enabled, the widget
registered by the hook will be available for administrators to add to their
dashboard. Widgets will also be removed when the extension is disabled.

Testing Done:

Unit tests have been written to make sure the AdminWidgetHook properly
registers and unregisters widgets. A third unit test checks that the Widget
subclass being registered ends up in primary_widgets list, when primary is set
to True in the hook initalization.

Reviewed at https://reviews.reviewboard.org/r/6573/
Add documentation for AdminWidgetHook.

This adds documentation on how to use the new AdminWidgetHook, along with
usage examples.

Reviewed at https://reviews.reviewboard.org/r/6597/
Added documentation for HostingServiceHook

This change adds documentation and sample code for the newly created
HostingServiceHook.

Reviewed at https://reviews.reviewboard.org/r/6600/
Fix some trailing whitespace.
Merge branch 'release-2.0.x'