Enable users to provide ProxyGenerationOptions

Users can now provide their own ProxyGenerationOptions - enabling them to use mixins, IProxyGenerationHook to specify which methods could be intercepted or IInterceptorSelector which enables users to provide valid combination interceptor/methods to intercept