Fix email validation error I18n symbol lookup

And include `%{value}` for interpolation in validation messages.

The current code hardcodes the I18n key and improperly assigns the error
which leads to several problems:
* You cannot override the translation message for models/attributes
* You cannot pass your own I18n key as a symbol (eg. `:invalid_email`)
* You cannot use symbol interpolation

This fixes the above problems and is the proper solution for issue #2346.

This fix also applies to 1-2-stable and 1-3-stable.
For a fix against 1-1-stable see PR #2729.