WebSession: email form validation addition

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
urlutils: fix for wrong URL arguments encoding

* Fixes issue with URLs being escaped twice.

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebSession: lost password blueprint addition

* Ports the 'lost password' functionality to the new Flask blueprints/ Jinja
templates structure

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebSession: change password addition

* Implements the change password feature

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebSession: invalid accounts login fix

* Local accounts with unverified emails are no longer able to login

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
WebSession: change email logic addition

* When users will change their email, their password will be reset to a random
one, such that they are forced to confirm the new email (closes #1601)

Signed-off-by: Jiri Kuncar <jiri.kuncar@cern.ch>
mailutils: unicode email address fix

* Fixed bug with unicode email addresses not being treated as strings.

Signed-off-by: Adrian Tudor Panescu <adrian.tudor.panescu@cern.ch>
Tested-by: Jiri Kuncar <jiri.kuncar@cern.ch>