Vagrant env

This PR addresses the following issues:

Vagrant support: https://github.com/GoogleCloudPlatform/kubernetes/issues/187
Provider independent scripts: https://github.com/GoogleCloudPlatform/kubernetes/issues/586

Manage a vagrant cluster running a single master with N minions.  Reuse existing Salt configuration scripts to provision master and minions.  Add support to run on Red Hat based OS family where systemd manages installed services.  Support via Vagrant can be added by registering additional boxes and setting ENV var.  

The initial vagrant up takes some time as it installs Salt, and downloads prereqs.  Subsequent vagrant provision commands to update code after source changes across the cluster are much faster.  The provision scripts are incremental.  Each minion upon successful initial provision calls the master to configure it.  As a result, it can take a moment ( < 1 min) after initial vagrant up for the minions to fully stabilize.  Subsequent edits, and vagrant provision commands have no delay.

PR is validated using the hack/e2e-test.sh scripts which have been augmented to support providers other than GCE by providing a common util.sh interface for each provider to implement to support all of the cluster/kube-*.sh scripts.

Tested on Fedora 20, Vagrant 1.6.2, Virtual Box 4.3.12 with multiple minions.