Abstract out a lot of redundant code in Vagrantfile.

This is much more concise, and easier to understand what's going on.
Merge pull request #1 from zenhack/Vagrantfile-cleanup

Abstract out a lot of redundant code in Vagrantfile.