Fix up some hooks to standardize things and reduce extension developer code.
Review Request #2668 — Created Oct. 22, 2011 and submitted
Fix up some hooks to standardize things and reduce extension developer code. This simplifies our hooks a bit to work without having to subclass all hooks. They now take parameters for the default information. Subclasses can still be made to override the functions, but they're only needed if the returned data is more dynamic. Some of the hooks that would only inject one entry (navigation and dashboard hooks) can now inject several at once, further reducing developer code. As part of this, I've standardized some names. "title" to "label", and "uri" to "url". I've also removed the support for javascript: URLs, since modern browsers are phasing those out.
New unit tests pass.