Performance improvements, caching and drupal extensions

PHPCtags has been labelled as slow and it was taking over an hour to process the entire Moodle sources.  This makes it unusable on a large project.

I've adjusted the method used for storing data to reduce the memory footprint and reduce the time to build.  On the same hardware, Moodle now does a full tags build in under 4 minutes.

For general tag updates, 4 minutes is too long as well.  So now there is a caching file option that will store versions of your files tags.  So when you git co <branch>, it will cache both versions allowing for fast update.  Branch changes and/or updates with no changes are running in 1-3 seconds for Moodle sources on the same hardware as the above tests.

Memory has not specifically been benchmarked, looking at top, it appears to be less, even with the cache file loaded in memory.