Categoryselect refactor

This is a rather large commit, so here are the gist of the changes:

* JavaScript code 100% rewritten. It is no longer dependent on YUI and has a much smaller footprint.
* The extension has been refactored from one large file into several distinct files.
* AJAX methods now live in a Nirvana controller.
* Hooks have been consolidated and removed where possible with the remaining hooks living in a HooksHelper class.
* HTML has been broken out into templates instead of being inlined in PHP.
* i18n has been cleaned up, unused messages were removed, some new messages were added and some names were changed for better clarity. All of the messages have documentation.
* Styles have been moved into Sass files and have been split across article and edit pages.
* The article page category select module has been re-styled.