cyclades: Support commissions on multiple projects

An action on a resource can now trigger quota changes on multiple projects.
For example, when a VM is destroyed, its attached volumes (which may refer
to different projects) are destroyed too.

Astakosclient commission helper functions are changed to take provisions
on project/resource pairs.
cyclades: Support project reassignment for volumes

Volumes can be reassigned through the volume API except for the system
volumes. These are reassigned as part of the VM they are attached to.
cyclades: Properly enforce volume quota

When enforcing the cyclades.disk resource, omit by default system disks.
This can be overridden with "--remove-system-volumes", in which case the
corresponding VM must be removed too.

Removing a VM fails if it triggers the removal of additional (non system)
disks. This can be overridden with "--cascade-remove".
get holdings common code