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.
godoc convention on these - "TCPLoadBalancer implements the X interface" for methods that are specifically there to implement known interfaces.