user timezone member property in personal preferences with dependency on plone.app.event for a vocabulary of available timezones.
Fix email as login validation in personalize form (UserDataPanel).

This is for the case when email is used as login.  It checked that a
changed email address was valid as user id.  But the user id is never
changed here, only the login name.  We only need to
check if this address is not used by another user.

Also, we would get an error when changing an email address to for
example pete_o'hara+hello@example.org.  That one may look silly but is
a fine email adddress and should be allowed, also for login.  (Whether
this works everywhere is a different issue.)
Add generate_user_id method for registration.

No behavior is changed, but this gives possibilities for changing the
user id that is taken, especially when using email as login.

A few more checks added for email as login.

This refs issue http://dev.plone.org/ticket/11616
Use the generate_user_id also when not using email as login.

No change in behavior.

Note that the call to getInputValue is not needed as far as I see,
because the data dictionary is already filled after the call to
super(BaseRegistrationForm, self).validate(action, data)
Added two inline TODO notes.
Merge branch '1.1.x'
merge with master
bump version
Merge branch 'refs/heads/plip10886-event-improvements'
Translating the msg here is not needed, the template takes care of that.
merged changes from branch 1.2.x
Use a different msgid for registration, some languages have a different translation in registration form and in change password form.
Make user id and login name generation pluggable.

Query 'ILoginNameGenerator' utility to get a login name during registration.
This makes it easier to override the default login name logic.

Query 'IUserIdGenerator' utility to get a user id during registration.
This makes it easier to override the default user id logic.

Support 'use_uuid_as_userid' site property.

Part of PLIP 13419.
merge with master
REFACTORING: remove formlib forms and only use z3cforms