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.