Workaround fix for translated_simulation_state_title. Use translated_simulation_state_title__ column when translated_simulation_state_title is sorted because translated_simulation_state_title is a scriptable key and it is not sortable.
BusinessTemplate: Fix a unindex/reindex catalog problem when upgraiding broken objects.

How it happened while upgrading PathTemplateItem:
  1. Tries to remove the existing broken object and succeeds removing
  2. However it is a broken object so self.unindexCatalog() is
     never called and the old catalog is remaining
  3. Add new object of PathTemplateItem and tries to reindex the object
  4. Since old catalog is remaining, the catalog uid and object uid is
     different so catalogObjectList fails with FATAL error.

The test is tests/BusinessTemplate.py#test_UpgradeBrokenObject.
Add save button to Ace Editor to save source code while staying on the same page.

This has several benefits:

* No need to exit maximize/fullscreen modes to save.
* The cursor position in the editor does not change.

This implementation is hackish because it is too Component-specific, but until
RenderJS is being used, there is no probably no better way.
Make sure that objects created on bootstrap are committed before trying to load them from ZODB.

Because of recently added Component Tool, POSKeyError exception was raised
when trying to load it from ZODB during migration of Portal Type classes and
ZODB Property Sheets (PickleUpdater() in ERP5Site.migrateToPortalTypeClass),
so make sure that there is a commit before loading anything from ZODB.
ZODB Components: No need to migrate Component Tool, only exist since Portal Type as Classes and ZODB Property Sheets.
ZODB Components: Fix deadlock on import lock.

Since a29456b, only import lock is used instead of aq_method_lock, dynamic
modules locks and import lock. However, it was creating another deadlock:

when the import lock is held in one thread (for instance when trying to
perform migration to Portal Type as Classes and ZODB Property Sheets), and an
object is loaded from ZODB, a request is sent to ZEO, and this blocks until
another thread (asyncore) gets the ZEO reply and sends it back to the first
thread.

However, if the asyncore thread receives an Exception, it will tries to import
its module and thus create a deadlock as the import lock is still held by the
first thread.
Remove useless except block and use with statement for lock instead try/finally block.