Add a connection backend to manage remote LXC containers

This pull request introduces a new connection backend to manage remote LXC containers by ssh'ing into the host machine and using lxc-attach to get a shell on the container.

The rationale for it is to allow to manage LXC containers without having to run a publicly accessible ssh daemon on every single one of them, with all the hassle it causes (having to assign a public ipv4 on each container or having to do port forwarding for each containers's ssh daemon on the host, or having ipv6 assigned to each container but requiring ipv6 to access them...).

While the code in this pull request should work, it definitely still needs more testing and some polishing (the CommunicateCallbacks class still feels a bit clunky).

Please review.