pulled out a base class for HasScope that'll be shared by PluginFamily and Instance
added scoping directly to Instance
added ILifecycleContext, made PipelineGraph implement it, put a Singleton cache in PluginGraph
changed the signatures of ILifecycle to use the context
added TransientLifecycle
changed up the SingletonLifecycle to the new scheme
mostly converted to the new ILifecycle interface
made all of the Lifecycle props be flyweights
refactored BuildSession to separate resolve from build
renamed the IBuildSession methods to be a bit more descriptive, SessionCache is Unique aware
converted the BuildSession to use the new cleaner SessionCache
converted IObjectCache to the new CPS style, cleaned up the internal locking, eliminated the old InstanceKey class
FIXED the problems with scoping where nested containers built singletons with transient services scoped to the nested container.  Closes GH-3
eliminated the internal usage of GenericsPluginGraph internally
eliminated the old MissingInstanceFactory stuff.  Using IFamilyPolicy much cleaner and more flexibly instead