Allow user to specify default machines for commands in multi-machine environments

When running a `vagrant` command from the shell in a multi-machine environment, Vagrant operates on all VMs by default if you don't specify one. This is dangerous if you're using a multi-machine setup to provision a development and production environment (say, with VMware Fusion in development and AWS in production), because you could accidentally run it on production simply by forgetting to specify your development VM. It would be great if you could declare in the Vagrantfile that a given VM should not have `vagrant` commands applied to it unless specified explicitly.

Another idea, though probably not backwards-compatible, would be to change the default behavior so that leaving out a VM name makes the command a no-op. Maybe instead, there could be a flag like `--all` to indicate that you want to run the command on all VMs, without having to list all their names.

I'd be happy to submit this as a pull request if you like the idea.

Edit: I've started work on a pull request for a configuration option for "default machines."