cyclades: Return 403 instead of 401 in subnets

Return 403 (Forbidden) instead of 401 (Unauthorized) in certain subnet
actions.
pithos: Add test

Add test for listing only objects that do not have specific metadata.
pithos: Fix issue with JSON serialization

Method 'get_account_headers' should return list
(JSON serializable) instead of set.

Closes grnet/synnefo#194
ui: Correct initialization of missing flavor object

include missing cpu/disk_template parameter while handling the response of
explicit calls made in order to retrieve details of a flavor id which is not
listed witin the initially retrieved flavors data.

Closes grnet/synnefo#193
astakos: Use webproject URLs as urlconf in reverse

Use "synnefo.webproject.urls" as urlconf in the reverse() calls of
`im/models.py/` and `im/user_utils.py`.

The reason why we explicitly use the webproject URLs is because Admin,
which imports functions from Astakos, may use a different ROOT_URLCONF
in order to disable the Astakos/Cyclades API. Therefore, If a user
needed to resend a verification mail from the Admin Dashboard, the
reverse would fail.

Closes grnet/synnefo#183
cyclades: Fix IndexError
gtools: Fix AttributeError

Check 'dry_run' attribute after ensuring that it is a cluster operation,
since adding tags to networks or nodes does not have the dry run option.
cyclades: Handle VMs connected to unknown networks

Catch InvalidBackendIdError when reconciling instances that are
connected to networks that do not belong to Synnefo.
astakosclient: Fallback to Python's json package

If simplejson is not installed, fallback to python's default 'json'
package. This is needed because 'simplejson' is not available in some
distributions (i.e. CentOs 7).
pithos: Change quota error handling

Pithos backend used to catch errors generated by the AstakosClient
and in those cases would return 413 (Request Entity too Large).
However, quota limit failures are not the only failures can occur.
Therefore, 413 responses are not always appropriate.
To fix this problem, let the respective methods fail with an
AstakosClientException which is handled by the common api decorator.
Small typo fix

closes grnet/synnefo#198
docs: Update CentOS 6.5 installation guide for 0.16

closes synnefo/grnet#192
cyclades: Fix mishandling of MAX_CIDR_BLOCK setting

Fix mishandling of MAX_CIDR_BLOCK setting. The CIDR range should be
[MAX_CIDR_BLOCK, 29] instead of (MAX_CIDR_BLOCK, 29] that was until now.
pithos: Several PEP8 and test fixes
pithos: Apply metadata/group limits for the resources

This commit sets a maximum metadata number per Pithos
resource as well as a maximum group number per account
and a maximum allowed number of group members.

More specifically:
* Introduces two new settings for Pithos:
* the maximum number of metadata each resource
  (account/container/object) can have,
  the maximum number of groups each account can have
  and the maximum number of members each group can have.
* Adds checks to enforce the above limits.
* Introduces the LimitExceeded exception raised by the backend
* when these limits are infringed.
* Refactors the backend implementation of the group/metadata
  update in order to reduce interaction with the database.

The affected backend methods are:
* update_account_meta
* update_container_meta
* update_object_meta
* register_object_map
* copy_object
* move_object
* update_object_hashmap
* update_account_groups

Applications, other than Pithos+, that use the Pithos backend
should put a special care on handling these situations.
plankton: Handle limit exceptions.

Pithos backend enforces limits on the number of the resource metadata.
If these limits are exceeded a LimitExceeded exception is raised.
Plankton should catch these exceptions and fail with BADREQUEST (400).
docs: Update storage API
pithos: Fix group issues

* Fix encoding issues
* Provide the appropriate tests
astakos: Revert bulk update of holdings in commissions

db464c6 introduced a bug: deleting holdings (and then bulk creating them)
interferes with locking; a thread that waits for holdings will not get
the deleted ones.

Revert to separate updating of holdings when issuing and resolving
commissions.
cyclades: Add GANETI_DISKS_WAIT_FOR_SYNC option

Add new setting to denote whether Ganeti will wait for the disk mirror to
sync (DRBD). This setting is used when creating a new instance or adding
a new disk to an existing Ganeti instance.