Cache the `iter_instances` Method

This change gives the biggest performance boost.  It is also dependent on pull requests #107 and #106.

By caching the `iter_instances` method we avoid needlessly recomputing the entire resource set for every package request.  

I also cache two other methods that appear high up in the cprofile output whose output doesn't change once the hierarchy is defined.

I have just noticed I should probably add these three caches to the `clear_caches` method.  I will do this tomorrow and update the pull request.