Make caching evict least recently used
Make caching evict least recently used

Before this, when the cache was full, it evicted max-cache-size number of entries from the list of entries.
It would also do eviction after addition.

With a cache size of 3, and using the sequence A, B, C, D, The old version would evict A, B, C. If again B or C was requested, then they would need to be recreated. The old would then have state D. The new will evict only A when it gets D. When it looks up B, it will also move B last, so that the state the is CDB. Next addition E, will the evict C, and state is DBE. If B is again requested, it is moved last and state s DEB.- i.e. the cache caches Most Recently Used.

I am making this change to improve the caching behavior, but also to see if it has effect on the tests that fail on catalog id being different.

rodjek/rspec-puppet,DavidS/rspec-puppet,puppetlabs/rspec-puppet