implemented disk limits

Flexible disk limits are implemented through a combination of:
- using devicemapper storage backend to impose a maximum limit of data written at places other than the user home (primarily /var/log, /tmp, etc.)
- mounting an external/loopback volume of an appropriate size as the user home

Configure the devicemapper loopdatasize to a value such that it will run out of space only if all running containers exceed their allowed capacity. This would ensure no single container can jeopardize all other containers.

Current implementation uses uniformly sized precreated loopback volumes for user home. This can later be enhanced to have an external allocator/manager process to manage the creation/reuse/destruction of volumes.