Tool to quickly deploy openstack dev environments

# Todo

* Add python-novaclient cli support
* move keystone/glance/dash to mysql
* syslog
* check openstack-puppet recipes to see if anything else is missing
* allow rabbit connection to be specified via environment variables with sensible defaults
* Add volume support
* allow changing of git locations (specify different tag/branch or repos)
* change method of invoking stack.sh to ./stack.sh all _or_ ./stack.sh nova-compute,nova-network,nova-api,nova-volume
* Add quantum support

# Done

* sqlconn can be set via env
* move back to using sudo
* move nova to mysql
* munin
* image upload with a script that supports generating images via debootstrap (ubuntu-vm-builder)

# Future

* idea: move from screen to tmux?
* idea: create a live-cd / vmware preview image using this?
* idea: use lxc to make the proto-image have everything?  so launching a new server is just turn on / updating / run?
