Centralized machine index

This introduces a few features:

  * Central machine index in the core. This is an abstraction that allows a central, process-concurrency safe index for storing information about Vagrant environments.

  * `vagrant global-status` which lists the status of the Vagrant environments globally, as up to date as Vagrant knows.

  * `vagrant command UUID` which allows any Vagrant command that takes a VM target to work with the UUIDs generated by the index. This lets you SSH, destroy, etc. a VM from any directory based only on the output from `vagrant global-status`.