Adding case-insensitive User.getByEmail method

fixes #1498

- getByEmail uses JS to compare emails to ensure we support unicode