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).
I'm fine with calling it something besides `:subject` but I eventually want to run this same set of tests for the ResourceCollection class.  In that case the `:subject` will be `ResourceCollection.new`.  I will do the same process wit the ResourceList tests, so I wanted a name that could refer to ResourceCollection, ResourceList or ResourceTest depending on the API I am testing.

I renamed `subject` to `collection`.