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).
are we ever likely to inflate a resourceset from json?  or even a resourcecollection?  support for inflating a resourcecollection from json smells like something dan left in support for out of an abudance of caution because some crazy idiot out there might be using it and this code got changed in a minor release.  since this is a dot-0 can we just rip this out?