ERP5Type: getObject method should be protected by AccessContentsInformation

It happens for some objects that we don't allow the user to see them, even though
we might allows them to get some informations. Typically an object that they
should not see in a module but that could be used for some purposes.
ListBox: give column_id parameter to url column scripts

This allows to use the same script for various columns. It is
particularly convenient for listbox used in reports with a list of
columns that could vary depending on data.
erp5_research_item: add report to list task total time per person on research items
erp5_mysql_innodb_catalog: add related keys child_aggregate_relative_url and parent_journal_relative_url
erp5_web_service: migrate to ZODB document
Update ace editor

Using https://github.com/ajaxorg/ace-builds/commit/45d3068aa7190f08396bcfe134e505fe144c1ccb
Patch ZMI to use ace editor
ACE: enable more features for components

* Ctrl+S to save
* Ctrl+space to autocomplete
* unsaved changes warnings
Inventory Brain: Avoid calling getObject when not required

* date attribute is converted to timezone only when attribute is accessed (and not in __init__ anymore). Some code that needs performance may be able to use date_utc attribute wich is the date as UTC
* debit, credit, debit_price and credit_price uses "is_cancellation" column instead of getObject().isCancellationAmount()
Aged balance: do not load objects in summary mode
ZODB Components: Live Tests could only be ran once.

reload(), which should be called only for filesystem tests, was called for
ZODB Components. So on the first execution, sys.modules was updated with a new
instance of the module whereas the module in erp5.component.test stayed the
same. On the second execution, reload() failed it checks whether
sys.modules[MODULE] == erp5.component.test.MODULE.