Added module to support managing LXC containers

The new module will allow users to control LXC containers from ansible. The module was built for use in LXC >= 1.0 and implements most of what can be done using the various lxc clients with regards to running containers. This first module is geared only at managing LXC containers.

The module provides:
  * build containers
  * destroy containers
  * archive containers with the ability to compress the archive
  * info from a single container
  * start / stop / freeze /restart containers
  * run commands within containers
  * enable logging when creating a container
  * add / modify lxc config for a container
  * supports backends including LVM, directory, loop, btrfs

This PR is a continuation of the work that was done in PR: "https://github.com/ansible/ansible/pull/7825". In this PR the module has been refactored to remove the command pattern in favor of being declarative, I've removed fact gather parts of the module, and changed most of the shell commands to use the LXC python library where appropriate.
I think ```--units g``` is needed here, otherwise invalid results will be returned when vgs decides to use other units. For example: 

```
(.venv)root@node06:~/ansible# vgs
  VG             #PV #LV #SN Attr   VSize  VFree
  cinder-volumes   1   0   0 wz--n- 93.13g 93.13g
  lxc              1  21   0 wz--n-  1.63t  1.53t
  node06-vg        1   2   0 wz--n- 93.13g     0
(.venv)root@node06:~/ansible# vgs --units g
  VG             #PV #LV #SN Attr   VSize    VFree
  cinder-volumes   1   0   0 wz--n-   93.13g   93.13g
  lxc              1  21   0 wz--n- 1670.07g 1565.07g
  node06-vg        1   2   0 wz--n-   93.13g       0g
```

This leads to the following error:

```
(.venv)root@node06:~/ansible# ansible-playbook  -i inventory test_playbook.yml

PLAY [hosts] ******************************************************************

GATHERING FACTS ***************************************************************
ok: [localhost]

TASK: [Create a filesystem container] *****************************************
ok: [localhost]

TASK: [Create a filesystem container] *****************************************
ok: [localhost]

TASK: [Create a container, run a command, and leave in a frozen state] ********
changed: [localhost]

TASK: [Create filesystem container] *******************************************
changed: [localhost]

TASK: [Create an lvm container.] **********************************************
failed: [localhost] => {"failed": true, "parsed": false}
{"msg": "Snapshot size [ 5 ] is > greater than [ 1.53 ] on volume group [ lxc ]", "failed": true, "error": "Not enough space to create snapshot", "rc": 2}
{"msg": "failed to unmount [ /tmp/tmpjwe9Vu/test-container-lvm/rootfs ]", "failed": true, "command": "/bin/umount /tmp/tmpjwe9Vu/test-container-lvm/rootfs", "err": "umount: /tmp/tmpjwe9Vu/test-container-lvm/rootfs: not mounted\n", "rc": 1}


FATAL: all hosts have already failed -- aborting

PLAY RECAP ********************************************************************
           to retry, use: --limit @/root/test_playbook.retry

localhost                  : ok=5    changed=2    unreachable=0    failed=1
```