Add the scripts used to build the LMS AMI

There is still a lot of fiddly manual work that needs to be done. Next
step is to clean that up and automate it end to end. This work can be
abstracted and reused for the virtual classroom.

When done, I'll put in a document with usage instructions.
Fix the regex so bad hostnames don't blow up

This came up on the first public delivery because someone used the name
of '$studentname-master'
Merge pull request #317 from binford2k/fix/poor_regex_wizardry

Fix the regex so bad hostnames don't blow up
Merge pull request #318 from klynton/master

Fix the color reset in the ZSH prompt.
Merge pull request #316 from binford2k/wip/lms_builder

Add the scripts used to build the LMS AMI
Configure irssi & hosts on the master and student

This avoids the proxy resource duplication and avoids over classifying
the student's secondary nodes.
Merge pull request #320 from binford2k/fix/proxy_resource_duplication

Configure irssi & hosts on the master and student
fix for TRAINVM-111 -- backup hosts and network before install and restore on failure
Merge pull request #322 from GeoffWilliams/classroom_setup_hosts_backup

fix for TRAINVM-111 -- backup hosts and network before install
Reimplemented the proxy work

This must have been lost in a previous commit. I cannot find it.
Merge pull request #323 from binford2k/fix/reimplement_proxy_work

Reimplemented the proxy work
Add default .gitignore to the $workdir repo

This commit adds a simple .gitignore file to the $workdir repository
(~root/puppetcode) that ignore Vim swap files.  This is to avoid
confusion or potential unexpected attempts to do syntax validation
against those files.
Better glob for gitignore
Merge pull request #324 from joshbeard/add_gitignore

Add default .gitignore to the $workdir repo