CMFActivity: Drop messages when document is removed but another document can be acquired with the same path.

Signed-off-by: Julien Muchembled <jm@nexedi.com>
make RoleInformation_view/my_condition a TALES field
remove outdated XXX comment
new business template: erp5_pdf_merge

This business template contains an external method to merge multiple PDF as a
single document.
Implement Watermarkable interface on PDFDocument
PDF: do not fail getting content information with document created using apple tools

Document created with some apple tools have a custom info 'AAPL:Keywords' for
which pypdf returns a non picklable instance.
Fail with explicit error when searchPredicateList is passed a context with non existant categories
CMFActivity.Activity.SQLDict: Drop single-use variable.
CMFActivity: Drop no-op registerActivityBuffer API.
CMFActivity.ActivityBuffer: Drop unused property.
CMFActivity.ActivityBuffer: Switch to defaultdict.
CMFActivity.ActivityBuffer: Drop unused import.
CMFActivity.Activity: Do not check message presence when registered.

This should never match, because published API does not provide access to
Message when registering it (this is intentional).
Also, this search is O(n), which makes activity creation complexity
O(n**2).
CMFActivity.ActivityBuffer: Do not define unused/duplicate properties.

_registered is already declared on TM superclass.
_p_* are only useful on subclasses of persistence.Persistent. TM is not.
CMFActivity.ActivityBuffer: Drop duplicate activity reference.

Activity is expected to be appended to message_list_dict's value already,
no need to append it to queued_activity.
In turn, this allows getting rid of _prepare_args.
fix testApparelTransformation

This test was using non existant categories.
fix testInventoryAPI using non existant categories
fix testInvoice using non existant categories
fix KM functional test by adding missing categories used on documents
use DeliveryCell_view instead of BudgetCell_view in Project Cell view

BudgetCell_view is installed by erp5_budget and this bt5 is not dependency of erp5_project. Then, if erp5_project is installed Project Cell is broken.

DeliveryCell_view is more appropriated because it is installed by erp5_trade that is a erp5_project dependency