@johnbellone my "gut feeling" tells me that this does not belong here. If the idea is to use this to support host capabilities as well, I'm pretty sure it won't have a for a `machine` argument. For example, in order to [detect whether the host is a linux machine](https://github.com/mitchellh/vagrant/blob/e97467e675988eae1eff2fe27174cdc2fd7d4963/plugins/hosts/linux/host.rb#L13-L15) we do so by just using `Vagrant::Util::Platform.linux?`.

To give us some food for thought, when I started thinking about the host capabilities support I initially thought that Guest / Host type detection should be independent of capabilities themselves, this hypothetical "machine type detection mechanism" would be able to build up the [chain](https://github.com/mitchellh/vagrant/blob/e97467e675988eae1eff2fe27174cdc2fd7d4963/lib/vagrant/guest.rb#L167-L189) required to figure out which capability should be used. WDYT?