ERP5Type.Utils: returns an imutable copy of pytz.common_timezones

This also fixes the problem that in recent pytz common_timezones is a LazyList that does not work in restricted python
ERP5Type.ERP5Type: Avoid modifying object if local roles are unchanged.

Also, avoid reindexing when object is not modified.
ERP5Type.ERP5Type: Make updateRoleMapping work with 100k+ documents.
ERP5Type.Base: Tolerate _baseGetTitle absence.

Although it should never happen in normal use, it may happen during an
upgrade when property sheets fail creating accessors (ex: broken object
because portal type moved to a different Business Template).
erp5_banking_core: Drop orphan related keys.

These related keys override auto-generated ones without adding any value.
Also, they are not declared as related keys, so declaration is
auto-generated and may not match ZSQLMethod parameters, causing errors.
ZSQLCatalog.SQLCatalog: Pass sql_catalog_id to getDynamicRelatedKeyList.

Also, get rid of single-use locals and unneeded list copy.
ERP5Catalog.CatalogTool: range can generate decreasing sequences directly.

Also, use xrange as it's faster than range even for short sequences.
ERP5Catalog.CatalogTool: Do not join with catalog when condition is on uid.

Also, factorise related key string generation.
ERP5Catalog.CatalogTool: Support all catalog columns in auto-generated related keys.
fix a typo in explanation_source_section_uid related key definition.
Test: do not change permissions just for the test
budget consumption report: display 0 instead of NaN when there's no budget
erp5_accounting: Include mirror_section_uid in section_uid index.

Accelerates (at least) Person's jump_to_accounting action.
use a random Initialization Vector for AES using CFB (Cipher FeedBack).

https://www.dlitz.net/software/pycrypto/api/current/Crypto.Cipher.blockalgo-module.html#MODE_CFB