Support RequiresUniqueEmail better

In your CreateUser, you access the private field requiresUniqueUser instead of the virtual read-only property, which could be overridden in a subclass. (Of course you need to be careful about doing that and might want to override GetUserByEmail to throw an exception, but we should allow users to subclass correctly here, and avoid using private fields when virtual properties exist.)