support for lxc

unlike vagrant, lxc is not aware(hence no api) of ssh configs of the vm/container. individual templates specifies the ssh user (like ubuntu uses username 'ubuntu', password 'ubuntu', centos something else), and there is no easy way to get these configs from template. hence im adding an attach based transport. shell_out (from Chef::Mixin::ShellOut) throws exception if the binary is not present (like checking for presence of chef using chef-client -v), hence i had to wrap the execute inside the begin/rescue. also, io objects can not be marshalled, hence im creating an openstruct from the ShellOut instance.

I want to create an ssh driver as well, but im not sure how to get the ssh configs dynamically. :-( 

add lxc attach based transport, use it in lxc provisioner