WebSession: enforce external user identifiers
- When using external authentication systems, the email address (which is internally used in Invenio as identifier) might not correspond with what is the external identifier (and externally the user might change his email address while still being identified by the same arbitrary identifier). External identifiers are now enforced and smart algorithms are in place to solve potential conflicts when a user is using more than one authentication system or when he changes his email address. (closes #424)
- Changes external_authentication plugin API to support external identifiers.
- Supports merging two user accounts that happened to be distinguished but are discovered to be corresponding to the same user because of an identical email address being associated to both.