pithos: Extend backend

Provide an additional backend method 'get_object_by_uuid'
which gets the object's UUID as an input
and return metadata and permission information
about the object.
pithos: PEP8 fixes
pithos: Slight change in get_domain_objects

This method gets two keyword arguments: user and check_permissions.
If check_permissions is True returns only the object accessible to the user.
Otherwise list all the objects for the specific domain ignoring
permissions.
The latter case is only meaningful if user is not provided,
therefore in that case it raises AssertionError.
astakos: Add email notifications recipients

Astakos accepts three lists of people who receive application
notifications, namely 'ADMINS', 'HELPDESK' and 'MANAGERS'. Then it sends
email notifications in a preconfigured way in these lists (ie. project
creation notifications are always sent to the 'HELPDESK' and 'MANAGERS'
email lists).

We would like to enable Astakos to specify explicitly the lists in which
every notification will be sent. This commit adds the corresponding
settings that will enable this feature.

For convenience, Astakos groups the notifications in three categories
and let the user define the recipients for these.
  - ACCOUNT_NOTIFICATIONS_RECIPIENTS receive notifications for 'account
    pending moderation' and 'account activated' actions.
  - FEEDBACK_NOTIFICATIONS_RECIPIENTS receive feedback notifications
  - PROJECT_NOTIFICATIONS_RECIPIENTS receive notifications for 'project
    creations' and 'project modification' actions.

Furthermore, one can explicitly specify the recipients for a specific
notification by using one of the following settings:
  - ACCOUNT_PENDING_MODERATION_RECIPIENTS
  - ACCOUNT_ACTIVATED_RECIPIENTS
  - PROJECT_CREATION_RECIPIENTS
  - PROJECT_MODIFICATION_RECIPIENTS
By default, these settings are not exposed to the config file.
astakos: Sent notifications to the specified lists

Use *_RECIPIENTS settings and sent email notifications to the
appropriate lists.
astakos: Document usage of '*_RECIPIENTS' settings

Document the usage of '*_RECIPIENTS' settings in Astakos to control the
lists were Astakos sends notifications. These lists used to be
preconfigured.
gtools: Fix a race in the cpustats collectd plugin

If the VM has just been started, the cpustats collectd plugin might try
to read /proc/<pid>/fd/ for VCPUs fds, before qemu has initialized /
created the VCPUs. This led to a ZeroDivision error in the collectd
plugin. Make sure to skip that particular VM until the VCPUs have been
created.
cyclades: Catch corner case in reconciliation

Include 'ERROR' in the states for which we check if the NIC exists in
the Ganeti instance.
ci: Update flavor option for burnin

Do not use only file disk templates, since an archipelago disk template
is required for snapshot tests.
cyclades: Add snapshot property in lowercase

Snapshot properties are stored in lowercase in Pithos DB. It is the
image/plaknton API that converts them to uppercase.
cyclades: Get Pithos objects by their UUID

Use the newly introduced 'get_object_by_uuid' method to get a Pithos
object by its UUID, instead of mapping a UUID to a (account, container,
name) tuple.

Also, remove the '--user' and '--public' options from 'image-show' and
'snapshot-show' management commands. Instead, use the
'check_permissions' option to bypass Pithos permission check.

Finally, fix plankton tests to mock the 'get_object_by_uuid' method.
docs: Update debian install guide
docs: Update upgrade release-0.16 guide
pithos: Add umask option on gunicorn conf file
cyclades: Re-raise exception when snapshots fails

When we cannot send a Ganeti job for a snapshot, we must re-raise the
exception after setting the snapshot's status to error.
astakos: Fix unknown variable in templates

Fix issue with the login template, where in the case of the master auth
provider, the 'provider' variable is undefined in the included
templates. This resulted in the 'primary_login_prompt' to not be shown.

Also, remove all references to 'master_auth_provider' in the auth
templates. They should be using only the 'provider' variable which is
set correctly from the 'login_base' template.
astakos: Fix PEP8 issues
astakos: Fix check for password chagne

The user cannot change password if it has an 'unusable' password. See
Django documentation for more information on 'unusable' password.
astakos: Refactor templates for login views

Major refactor in templates for login views of authentication providers:

* Treat the 'local' authentication provider exactly like all other providers.
  So, if the provider is not the primary, then the login form does not
  appear. Instead, just show the local provider icon.
* Use only the 'primary login' and the 'login prompt' templates for each
  authentication provider. The 'primary login' template is the one that
  is used when this provider is the master provider or is chosen by
  the user. The 'login prompt' template is used when the provider is one
  of the other available providers.
* Make the login views pass the 'primary_provider' variable in the
  context in order to know which provider has been chosen by the user.
* Change 'generic_primary_login' template to include the login title
  message. Also, remove 'shibboleth_login' template, as this is covered
  by the generic template.
astakos: Add policy to auto verify user email

Add 'autoverify' policy to denote that the user's email should be
automatically verified. The 'SKIP_EMAIL_VERIFICATION' setting is
removed.