Provide generic GetRootProxy methods for NSConnection
This returns a proxy to a remote object, so we'll generally want it
to return a binding typed as the remote object's interface.

Runtime.GetNSObject sends the "class" message to determine the type of
binding to create, but that always returns NSDistantObject in this case,
so bypass it and explicitly create the type of binding we want.