Implement apiserver communication for Vagrant

This implementation is based on the GCE implementation from
618a367dbb48dbaa9c3b50e877858d854322fd0b.

I built this while trying to fix issue #2746.  It didn't work, but it did change some kubelet log messages from

    Unable to write event [...]  failed (401) 401 Unauthorized: Unauthorized

to

    Event(api.ObjectReference{Kind:"Minion", Namespace:"default", Name:"10.245.2.2", UID:"10.245.2.2", APIVersion:"", ResourceVersion:"", FieldPath:""}): status: '', reason: 'starting' Starting kubelet.

So I figured this might have some value. You're welcome to pull it if it's useful.