RealmProxy represents a Realm of the same name on the client side.
It helps pack up user information in realm specific ways and
provides information about the realm specific credentials that a
generic user interface can use. Its static functions fetch and
cache instances by name, and optionally, specify an implementation.
As an example of two different proxy implementations, one might be
intended for commandline input, and another for popping up a dialog
box.

setName

createUserInfo

Creates a UserInfo instance in an implementation-specific way.
Custom realms override this method for special effect.
Typically, a custom realm will extend RealmProxy and implement
BasicRealm in the same package to exploit package local access.