docs: Update copyright date on docs
ui: Fix volume details editing controls position
ui: Update resource titles truncation length
astakos: Update checkbox label in terms acceptance form

the field description changed for field description clarity when
displayed in user management commands context resulting confusion when
appeared in terms acceptance form. Fixed by reverting field label in the
terms acceptance form class.
docs: Remove obsolete warnings

closes grnet/synnefo#163
astakos: Use bulk_create to speed up commissions

Update holdings and create provisions and log in bulk when issuing or
resolving commissions to speed up the operation,
astakos: update action logic

The following changes are made to the way actions are validated:

* accept: Accept only unmoderated or rejected users.
* deactivate: Deactivate only moderated users. This includes inactive
  users, solely for the purpose of changing their deactivation reason.
* send_verification_mail: Renew verification code and send it only to
  users with unverified mail.
astakos: Update user logic tests

Update tests according to the changes in activation_backends.py

closes grnet/synnefo#164
pithos: Add missing index

Add index on column 'node' of the ''versions' table.

closes grnet/synnefo#161
pithos: Perform size checks during uploads

Verify the consistency between the declared size
and the object's hashmap during uploads/object updates.
pithos: Fix test

The specific test challenges the object upload
by providing the object's hashmap instead of actual data
while not all the respective blocks are previously
uploaded to the storage (409 Conflict status).
However, this test will fail if all the blocks
are stored to the backend
by preceding uploads / test executions.

This commit changes the test in order to upload random data
and, hence, it reduces the possibility of block collisions.
common: reconfigure the synnefo settings framework

- add 'services' endpoint in 'synnefo' namespace,
  where all components register their services.

- add three stages of setting initialization:
  1. preprocessing, after default settings are read from components,
     and before any user configuration files are read.
  2. postprocessing, after all user configuration files have been read.
  3. setup, which runs a (configurable) list of setup modules on the
     settings.

- add special default settings value classes:
  - setting_name = Example("example value")
    which makes 'setting_name' mandatory to be set by the user,
    providing an example value for the error message if they don't.

  - setting_name = Default("default value")
    which makes the setting optional for the user settings,
    but also makes synnefo settings "know" whether the user did
    configure it themselves or just let it default.

  - setting_name = Deprecated()
    which makes the setting mandatory to NOT be set by the user,
    to force them to remove it or replace it appropriately

- preprocessing scans settings for the special-value classes
  and compiles the following dicts:

  settings._DEPRECATED -> a dict with all Deprecated() settings
  settings._MANDATORY -> a dict with all Example() settings
  settings._DEFAULTS -> a dict with all Defaults() settings
  settings._OTHER -> a dict with the rest of the settings

- postprocessing scans the settings after reading the user configuration
  files, raises errors on mandatory and deprecated settings, and
  compiles a settings._CONFIGURED dict with all default settings that
  have been actually configured by the user.

- settings.SYNNEFO_SETTINGS_SETUP_MODULES is initialized as
  ['synnefo.settings.setup.services'].
  At the setup stage, all modules within that list are imported
  and their module.setup_settings(settings) function is run.

- services.setup_settings() configures:

  - settings.SYNNEFO_SERVICES, a JSON-exportable document from all
    documents contributed by installed synnefo components via the
    'services' entry point.

  - settings.SYNNEFO_COMPONENTS, a dict of component names to
    their services catalog (dict), extracted from SYNNEFO_SERVICES.

  - for each component name, it demands a settings.<COMPONENT>_BASE_URL
    setting, making it a fatal error not to provide one.
    After retrieving COMPONENT_BASE_URL, it also generates
    settings.<COMPONENT>_BASE_HOST and settings.<COMPONENT>_BASE_PATH

  - Using the base path settings, fills in the PublicURL entrypoints
    for all services in SYNNEFO_SERVICES.

- add snf-manage settings command, to display various aspects of
  settings, such as complete listing, defaults-only, configured-only,
  etc.

Conflicts:
	astakosclient/astakosclient/__init__.py
	snf-astakos-app/astakos/im/astakos_resources.py
	snf-astakos-app/astakos/im/management/commands/service-export-astakos.py
	snf-astakos-app/astakos/im/settings.py
	snf-astakos-app/astakos/im/tests/api.py
	snf-astakos-app/astakos/urls.py
	snf-common/synnefo/lib/services.py
	snf-common/synnefo/settings/__init__.py
	snf-common/synnefo/util/keypath.py
	snf-cyclades-app/synnefo/api/tests/images.py
	snf-cyclades-app/synnefo/api/tests/networks.py
	snf-cyclades-app/synnefo/api/tests/servers.py
	snf-cyclades-app/synnefo/app_settings/urls.py
	snf-cyclades-app/synnefo/cyclades_settings.py
	snf-cyclades-app/synnefo/plankton/tests.py
	snf-cyclades-app/synnefo/quotas/resources.py
	snf-cyclades-app/synnefo/ui/settings.py
	snf-pithos-app/pithos/api/management/commands/service-export-pithos.py
	snf-pithos-app/pithos/api/resources.py
	snf-pithos-app/pithos/api/settings.py
elements from Remove 'v' from service version IDs, keep it in URLs
support setting SERVICE_BASE_URL from environment

Also, add environment variable SYNNEFO_RELAX_MANDATORY_SETTINGS.

Conflicts:
	ci/tests.sh
	snf-cyclades-app/synnefo/app_settings/default/api.py
Enhance the new settings framework.

- Add an annotation superclass Setting
  See synnefo.settings.setup:Setting for documentation.

- Add Mandatory, Default, Auto, Constant, Deprecated, setting subclasses.

- Add management command 'settings' with setting filtering and
  various options for displaying settings.

- Add fundamental dynamic settings such as SERVICE_BASE_URL, etc.

- Write some example annotations for settings.

- Transition and other concerns:
  * Eventually all settings must be annotated and conformant.
    Currently this has been relaxed with a FIXME.
    Duplicate annotation errors and setting override errors
    are disabled with a FIXME.

  * Django settings that are critical for synnefo must be annotated?

  * Django settings that are not critical must be set in specific
    files 'NN-system.conf' in order to be accepted without annotation.

  * Cleanup test settings so they don't need many exceptions
    (e.g. relaxing mandatory settings)

  * The following are demos, and probably will need to be tuned
    to specific requirements:

    - The Deprecated and Constant classes
    - Setting validation.
      Right now it must be incorporated within the configure callback.
    - The snf-manage settings --printout-files option,
    - The snf-manage settings --select list of filters.
    - There is a commented-out synnefo.setting namespace cleanup block.
      Django only considers all-caps names for settings and
      this notion has been inherited for this setting framework.
      However, cleaning up synnefo.settings breaks it.

Conflicts:
	Changelog
	snf-astakos-app/astakos/settings/__init__.py
	snf-astakos-app/setup.py
	snf-common/synnefo/settings/__init__.py
	snf-cyclades-app/synnefo/app_settings/default/api.py
settings: remove debug print statement
settings: add description in --detail
settings: support printout of runtime setting values
settings: safer --printout-files

- split category files according to depth
  (before, maximum depth per category was used)
- abort if file already exists
settings: deferred init, SubMandatory type, fixes

Also, required/disallowed args class attributes