[vagrant] Update Registry with #keys method.

This helper method to return the keys for the registry will give capability to eliminate some code. Example:

```ruby
keys = [] 
@subcommands.each { |k,v| keys << k }
keys.sort.each { |k| o.seperator "#{k}" }
```

Versus:

```ruby
@subcommands.keys.sort.each { |k| o.seperator "#{k}" }
```
Add unit tests for Registry#keys.
Allow defining of <install-type> and <install-type-args>
extend Virtualbox convenince methods

In the vein of #2426, I too can never remember syntax, and end up
hunting for either an exisiting Vagrantfile or starting to dig up
details.
Merge pull request #2800 from miketheman/cpu_vbox_convenince

provider/virtualbox: add `cpus=` configuration
Update CHANGELOG
synced_folders/nfs: always prune [GH-2738]
Merge pull request #2766 from graingert/patch-1

provisioners/salt: Allow defining of <install-type> and <install-type-args>
Update CHANGELOG
core: use dummy provider in tests so VirtualBox isn't required
Merge pull request #2637 from johnbellone/patch-1

core: Update Registry with #keys method.
core: update Registry tests to make sure #keys doesn't load
synced_folders/rsync: Initial commit working
synced_folders/rsync: allow guests to execute things before
synced_folders/rsync: can exclude files
synced_folders/rsync: output what is being excluded
website/docs: document the rsync synced folder type
Merge pull request #2803 from mitchellh/f-rsync

rsync Synced Folder Type

This pull requests introduces the `rsync` synced folder type into Vagrant core. This synced folder will do a one-time one-directional sync from the host machine to the guest machine using rsync. This is useful in situations where NFS or native shared folders can't be setup, such as in AWS.

Pretty easy to use: `config.vm.synced_folder ".", "/vagrant", type: "rsync"` No additional configuration necessary, though additional options are available.

In the future, I'd like to add the ability to force a re-sync, as well as to watch for file changes and sync. For now, this is a basic one-time sync.

Having this in core allows remote providers such as OpenStack, AWS, RackSpace, etc. to stop hand-rolling the rsync synced folder mechanism and to rely on the core providing it.

And a shout out to @phinze because this thing is fully unit tested.

Fixes #1926
Update CHANGELOG
synced_folders/rsync: warn if password auth