IProxyFactory
Defines the contract used by the kernel 
              to obtain proxies for components. The implementor
              must return a proxied instance that dispatch 
              the invocation to the registered interceptors in the model
            
                
Add the selector to the list of selectors that can affect interceptor's decisions
              in the container.
            
object Create(IKernel kernel, object instance, ComponentModel model, CreationContext context, object[] constructorArguments)
Implementors must create a proxy based on 
              the information exposed by ComponentModel
            
object Create(IProxyFactoryExtension customFactory, IKernel kernel, ComponentModel model, CreationContext context, object[] constructorArguments)
Implementor should check the component model
              and determine if the caller must pass on the component 
              instance to the proxy
            
Determines whatever we need to create a proxy for this model