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. Also handle gracefully missing user or project.
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
cyclades: Suggest volume options in enforce

When a violation cannot be solved in full because it would trigger an
unexpected action (e.g. destroy a vm), suggest which option can be used
to force it.