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

@witlessbird didn't mean to remove the comments from here. 
I'll try to check this again and see when cache is created in models/cache