Email fixes

 - add the option to index secondary emails on the add and remove methods
 - reindex the user's secondary emails on update (set/add/remove) everywhere
   when needed 
 - proper check when changining the primary email
 - proper check when adding a new seconday email
 - send confirmation email when changing the primary email
 - unifed confirmation email endpoint for primary and secondary addresses
 - random url for email confirmation
 - store pending emails in a generic cache instead of the avatar
 - remove the old active secondary email logic
 - remove the pending sencondary email logic from the avatar
 - update the secondary emails field on the settings page directly when setting
   a secondary address as the primary one
Also, you could use a single Jinja template to store all the messages related to this. Simply define one Jinja macro per message and then use `get_template_module()` to get the template's python module. You can call macros on it like normal Python functions.