Vagrant supports a cloud provider

This is an initial solution to #800.

The idea is a cloud_provider that can support testing in local environment to exercise any use case patterns we introduce as native to the cloud_provider model.

This also simplfies the process of a developer running with a small 2-node cluster (single master/minion) but then very easily adding new nodes to his cluster without needing to teardown his initial master/minion setup.  Basically, once the salt-master knows of a minion, the kubernetes cluster will know of it.  In addition, when you remove a node (vagrant destroy minion-4), the kuberentes cluster reacts as well.  

We have had some developers observe running multiple VMs is slow on their boxes, but they will on occasion add/remove a node to test replicas, so this should ease that process since it will not require full tear-down of their existing boxes.
if pos := sort.SearchStrings(value.Roles, role); pos < len(value.Roles) {
...
}