SmartOS detection and command support

This fixes #3101.

Some internals of Vagrant use `sudo` in a way that cannot be overridden, but at least for the guest plugin `pfexec` can be used in its place. It requires that the vagrant user be given role-based access to the necessary commands, which is most easily done by applying the `Primary Administrator` role to the user.

I also had to add support to the dummy communicator for `machine.communicate.test`, though it was an easy fix.