get_user_by_email() and get_user* cleanup
|Reported by:||ryan||Owned by:|
Add a get_user_by_email() function to get a user by email address. It should use an email to user id cache to avoid DB trips. If an email address does not match a user, cache that fact. If this results in too much stuff in the cache, we can lose this part.
While we're at it. Clean up the get_user* functions. Refactor the back compat and caching code into a new private function shared by all of the get functions.