Add 'funding' in inventory API

To migrate, run:
alter table stock add column funding_uid bigint unsigned after payment_uid, add index funding_uid (funding_uid);
alter table inventory_stock add column funding_uid bigint unsigned after payment_uid;
Add 'payment_request' in inventory API

To migrate, run:
alter table stock add column payment_request_uid bigint unsigned after funding_uid, add index payment_request_uid (payment_request_uid);
alter table inventory_stock add column payment_request_uid bigint unsigned after funding_uid;
Also catalog non accountable movements in stock table
catalog explanation_uid in stock table
Make related keys against stock instead of movement when possible
Allow to set a different quantity on an event
support funding and function to be passed as a document, not a category

Signed-off-by: Aurélien Calonne <aurel@nexedi.com>
Movements with 0 quantity where ignored by getCurrentInventory

Also, movement with 0 price where ignored by omit_asset_increase /
omit_asset_decrease

Signed-off-by: Aurélien Calonne <aurel@nexedi.com>
Inventory API: test and document the problems with resource_portal_type / resourceType
Don't run ERP5TioSafe tests that were all @skipped
Test & fix behaviour with movements with NULL price & 0 quantity
remove movement table from erp5_mysql_innodb_catalog

The idea is to use Inventory API instead.
add left join support in some related keys
remove some overcomplex related keys that we don't use anymore
directly use portal_catalog on select methods
remove InventoryListBrain.getQuantity

InventoryListBrain does not need a getQuantity method which returns something
else that the total_quantity on this brain, this is just confusing (and using
movement table)
Stop using movement table in crm reports

tickets are also in delivery table
don't force movement table in listbox columns
isDivergent: fix docstring and return a boolean
reimplement PackingList.isPacked using ZODB (to get rid of movement table dependancy)