[ENH] Refactoring global cacher

This patch cleans up the code and allows global cacher to be called directly from Skin through XBMC.ActivateWindow(10208)