Fixes #8210 - Adding caching for smart-proxy puppet classes using Stefan Julin's implementation of cache

This cache location path is relative to the current working directory, which is problematic as it can change. Lets put cache directory in the root directory of smart-proxy installation by default; you can use something like: ```File.expand_path("cache", File.expand_path("../../", __FILE__))```.