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

@witlessbird I'm not sure how useful this is but I changed the name. 
I can remove it or change it to a scan test without use of the cache for an existing dir, what do you prefer?