peer: Add support for setting process EUID/EGID

Add "-uid" and "-gid" CLI options to set real and/or
effective user or group ID.
conf: Remove useless XSEGBD_START/END options
conf: Introduce new options USER/GROUP

Introduce new conf section ARCHIPELAGO and add USER/GROUP options.
Switch peer processes to run as user USER and group GROUP.
archipelago: Extend Peer class to support UID/GID options
tests: Fix tests

Adjust tests according to the new user/group additions.
docs: Update docs based on the new block device

Add new configuration options, USER & GROUP.
Switch license to GPLv3

According to the decision of the GRNET Board of Directors,
switch license to GPLv3.

This commit will be propagated to the release
and master branches based on git flow, and the next
release will be licensed as GPLv3.
mapper: Fix v2 mapdata layout

Introduce new v2 mapdata layout. The new layout introduces restrictions on the
size of the object on the map, but it is simpler and does not split objects
between mapdata blocks. It also behaves correctly with small blocksizes.
archipelago: Fix typo in rename cli argument
mapper: Put request if load metadata failed
mapper: Flag zero objects when reading v1 maps
mapper: Fix v2 delete map data
archipelago: Introduce BLKTAP_ENABLED conf variable

Set BLKTAP_ENABLED to True or False to control whether the
'archipelago' and 'vlmc' commands should check for the
existence of the blktap module.

If BLKTAP_ENABLED is set to False, the 'vlmc' command will not
interact with blktap and it won't unload the blktap module if already
loaded. This gives the administrator the ability to continue working
with blktap independently, without interfering with Archipelago.

The intention for this addition is to support Archipelago deployments
that do not need to have peers that interact with blktap.
archipelago: Do not rename a mapped volume
mapper: Change volume state to OPENING earlier

Mark volume as opening before starting open procedure. This implicitly marks the
volume as not ready, so if the open procedure blocks for any reason (e.g. there
are no available xseg reqeusts), then any subsequent operation on the same
volume will have to wait until the volume becomes ready.
mapper: Fix count of map nodes when preparing I/O
mapper: Add map purge functionality
mapper: Fix delete map data state

Add delete map data state and use it when appropriate
mapper: Add delete map handling function
mapper: Add DESTROYING map state