Fix error message of StringAttributeMatch Constraint incorrectly renamed after migration to ZODB (78e2ae3).
Implement migration of StringAttributeMatch from filesystem to ZODB.
Fix migration of some Constraints.
Invalid error message returned in CategoryMembershipArity Constraint.
Support new sorting feature which user can specify order of sort explicitly.
Improve listbox sort feature.

Now both ascending arrow and descending arrow are displayed in title column
and user can sort in specific order explicitly. User also can sort multiple
columns by click without using sort-on-dialog.
Fix loading of Portal Type after renaming of SynchronisationTool.
After upgrade, VCS is used instead of SVN in erp5_forge (migration has not been implemented).

If an user has set SVN working copies in its preferences, it cannot be
modified anymore after upgrade.
Allow to specify bt5 which are not going to be upgraded (meaningful for master data for example).
Fix dead ProxyFields.

PasswordTool_viewResetPassword/text_content from erp5_core wrongly requires
Field Library in erp5_web and EmbeddedFile_view/my_description from erp5_base
wrongly requires Field Library in erp5_dms.
Improve error handling on Workflow_statusModify. If requested transition is not available, then show a nice message.
Uid must be always consistent. If uid is changed, then workflow action which user selected is applied to different workflow and it causes different result.
Improve error handling on Workflow_statusModify. If divergence is solved by other user, then show a nice message.
Redirect to view form with a nice message if selected workflow action is not available.

To show a workflow dialog which absolutely fail is not good.
Upon Business Path Item installation, update Local Roles of objects whose Portal Types defines Roles.

Before, Local Roles were not updated upon Path Item installation, thus leading
to security issues (such as Trade Model Line). This avoids ugly hacks in
Upgrader and in tests as well.
Avoid running out of file descriptors when backing up many objects in the trash upon bt5 installation.

Before, when installing a bt5 whose format has changed, many subobjects may
end up being backup up, but it keeps one FD per subobject, thus easily
reaching the limit of 1024 FDs (as given by ulimit -Sn/-Hn).

This is a followup of b71e5a7 specific to TrashTool as that commit seems to
only fix the issue when TrashTool is not used.
Add unit test helper to get the checkConsistency() error messages as string.
If a Live Test is interrupted, MailHost may have not been restored yet.
Store Live Tests log in INSTANCEHOME/var rather than in a StringIO.

This avoids copying/pasting the content of the form and also keep records for
later inspection.
Two hours may not be enough to run Functional Tests so increase timeout.