astakos: Create system project on user acceptance

Delay the creation of user's system project until the user is accepted,
to avoid polluting the database with unneeded project objects.

There is a slight chance that a user UUID (to be used for a system project)
collides with an existing project UUID. In this case, one has to delete the
user and make a new one in its place.
astakos: Change the display name of system projects

Change the name of projects from "base:UUID" to "system:UUID", so as
to avoid confusion, since the name is visible in management commands.
astakos: Wrap user-modify actions to catch errors
Merge branch 'feature-delay-project' into develop
docs: Typo fixes
cyclades: Additional vm task state mappings

The mappings are related to the volumes api vm tasks.

Refs #98
astakos: Fix system project display in usage view

Identify system projects using project's system_project attribute.

Refs #98
ui: Volumes ui integration

- Volume api model and collection objects
- Volumes list pane
- Volume create wizard
- VM volume list in icon/single view
- Move snapshot functionality from vms to volumes entries

Closes #98
cyclades: Fix a typographical error

Rename 'charachter' to 'character'.

Closes #112
docs: Fix typographical errors

Make the following changes:
    servive    -> service
    vesionless -> versionless
    servers    -> /servers
    imageRed   -> imageRef
    flavorRed  -> flavorRef

Closes #113
astakosclient: Rename param project->project_id

This change affects the parameters of all methods in astakosclient.
Preserve backwards compatibility.

Refs #110
cyclades: Use "project_id" in astakosclient calls

Closes #110
docs: Write an API guide for Block Storage API
pithos: Fix wrong quotas when moving objects

Quotas were not accounted correctly when moving an object or a folder to a
path that another object already exists.

This commit fixes this issue.

In addition to this, the backend during move operations used to issue the quota
change for each separate operation (copy & delete) and for each affected object
(in the case of bulk move operations).

This commit introduces the following enhancement:

In case of a move operation to the same account and to the same project
computes the whole quota change and contacts the quota holder component only
once (at the end of the whole procedure) for the specific account/project.

However, we do not perform the same for such copy operations because we want to
catch quickly failures due to quota restrictions.

Fixes #2
pithos: Reorganize backend testing code.

Break backend testing code into several modules and extent the tests to
challenge also the sqlite backend module.
pithos: Provide tests for the quota commissions
astakos: Split im/functions.py

Split `im/functions.py` in two parts. Rename the first part as
`user_utils.py` and keep in it all user-related utilities that
`im/functions.py` provided (mainly mail utilities). The second part is
the project-related functions, which will be kept in `im/functions.py`
for now.

Also, fix any broken imports that this split introduces.
astakos: Allow sending customizable emails

Add a `send_plain` function in `im/user_utils.py`. With the `send_plain`
function, the admin can send a fully customizable mail to an
AstakosUser. The admin can either choose to use the provided body
template (`plain_email.txt`) and subject, or write his/her own.
astakos: Add project logic

Add a `validate_project_action` function that takes a project and
an action as arguments and checks if the action can be applied on the
project.
astakos: Add user logic

Add a `user_logic` file that serves as a common endpoint for actions on
users. The actions that this file offers act as a wrapper above
`activation_backends` and are used by `snf_manage` and `im` views.

Also, add a `validate_user_action` function in `activation_backends`, in
order to export this user logic to any other module that wants to use
it.