Username and email case sensitivity

This is a breaking change. It adds UsernameLower and EmailLower properties to the user BSON document. I also extracted the query building logic to private methods.