Notify a resource by the `resource[name]` key it was written as

ResourceCollection currently fills 2 functions - it keeps an ordered list of resources to converge during the 2nd Chef phase, and it keeps a unique set of known resources keyed by the resource type and name (IE, `package[vim]`).

As part of fixing https://github.com/opscode/chef/issues/1817 I am attempting to seperate ResourceCollection into two classes that encompass the different purposes.  ResourceCollection is now a thin proxy in front of these two classes to keep backwards compatibility.

**EDIT**

I am keeping all backwards compatibility for ResourceCollection.  The implementation details still utilize 2 classes for the 2 purposes.  I also made the changes to support notifying resources by the key they were written with (which was the original problem).
And the same time everyone can also just use .send() and other metaprogramming/monkeypatching business to bypass any restrictions you create, so private is purely advisory in ruby...

I do use private, though, so because its a defense against breaking someone in a minor version who was surfing through ruby classes and decided to use a method that wasn't intended to be public, particularly since users have picked up on using SemVer as a weapon against change.