Default Provider By Priority

This introduces smarter `Environment#default_provider` logic which is done by priority and usability of providers. `VAGRANT_DEFAULT_PROVIDER` still trumps the rest, but if that isn't set, Vagrant does its best to choose the
"best" provider.