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.
no, they don't impact end user if he just pick one of these providers. This is just `import` in java.