Fixed memory leak by ensuring cross appdomain remoting references get destroyed

Any MarshalByRefObject descendant which returns “null” as the return from their InitializeLifetimeService() will cause a permanent reference to be held open by some fairly low level area in the .NET remoting stack, specifically System.Runtime.Remoting.ServerIdentity (which is marked internal). This was preventingInnverWeaver from being garbage collected, and thus the memory footprint would keep growing and growing.