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

Not sure if it's worth it -- FileUtils.mkdir_p skips dir creation if it already exists?