* 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
Most translations are only for half the messages. They come from the translations provided
by users for the external CategoryTree tool. Translators are attributed in each file.