helpdesk: Fix issue in tests caused by mock

Helpdesk tests patched methods of the 'logic.backend' without reverting
the patch after the tests. This resulted in module's methods to be globally
patched, affecting other tests. This commit fixes this issue by using
the 'mock.patch' context manager that handles patching within the scope
of a test.
cyclades: Fix bug in unittest

The 'serial' attribute is automatically cleared from the VM model when
the corresponding commission is resolved and so is not available in the
unittest. This commit fixes this issue by not explicitly checking for
the specific serial number.
cyclades: Introduce project field in Volume

A volume is a separate resource and is assigned to a project.
cyclades: Add serial field on Volume

Add a field on Volume to store quotaholder serial in order to handle
commissions.
cyclades: Remove unused quota code
cyclades: Compute disk quota per user/project
cyclades: Fix typos
cyclades: Specify project on volume creation

Allow specifying project when creating a new volume. On a VM creation, the
system volume is given the same project as the VM.
cyclades: Add missing MODIFY_VOLUME action

Handle the case when a volume is modified in the backend.
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".
cyclades: Reduce duplicate quota code

get_db_holdings computes either user holdings or project holdings; this is
controlled with the flag 'for_users'.
astakos: Query service quota with lists

Extend service_get_quota and service_get_project_quota in a backwards
compatible manner in order to support querying for multiple users or
projects.
cyclades: Fix reconcile for given project

Use the new option 'project' of service_get_quotas in order to retrieve
only the quota needed.
cyclades: Set DB index for project fields

The index speeds up resource reconciliation, which filters by project.
cyclades: Auto-fill project in test objects

Use factory.LazyAttribute to set project equal to userid in test objects
created with a factory.
pep8 fixes