First shot at implementing a vSphere check

cc @remh
- [x] Get metrics for all the VMs and hosts
- [x] Selection flag for all_metrics or a set of "basic_metrics"
- [ ] Get metrics from datastore
- [ ] Metrics tagged with vm/host/cluster/datacenter tags and instance tags (~device)
- [x] Get events from vCenter
- [x] Filter these events, get only the types that are interesting + ignore certain messages with regexes
- [x] Tag VM events with VM tags
- [ ] Tag other events with proper tagging?
- [ ] Go through the list of events and select what we want https://github.com/vmware/pyvmomi/tree/master/docs/vim/event
- [x] Report host tags through another param in the payload we send to the intake
- [x] Multithread the requests asynchronously with the ThreadPool class
- [x] Display the async job failures in the logs

Before release:
- [ ] Remove the TEST-INSTRUMENTATION code for release
- [ ] Remove unuseful debugging strings for release
If it's critical, should we stop the thread pool and stop the interruption of the check and raise an exception so the user can take proper action ?