restructure Vagrant, making recipe lean and easy to augment

This is a follow-up to PR #520, per @dcapwell and @haoyuan suggestion. 

Will be the basis to the coming docker provider.

Tested on AWS, OpenStack, and Virtualbox.
Just noticed that this looks like string concat and string interpolation.  Maybe just do string interpolation?