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.
should this be hiding the output? If anything goes wrong, you only know the exit code was non-zero.