"nothing found" is misleading in standard category view (perhaps two separate messages are needed for "no subcategories" and "no subcategories or articles")
* Implemented memcached caching for ajax requests with invalidation via page_touched
* General refactoring, moved some global functions into a class
* Lazy initialisation of messages, initialise the <head> section in the output only when a categorytree tag is present.
* Eliminated all $wgUser and $wgLang accesses from ajax requests, using message placeholders.
* Added speak:none style in .CategoryTreeBullet in case voice browsers try to read out the punctuation