Add base skeleton for `vagrant push`
Add preliminary File pusher (incomplete)
Accept an environment in the push config
Add Push to the PLUGIN_COMPONENTS
Accept a list of options in #push signature
Rename file push to noop push
Use a pushes registry instead of data hash
Add #length and #size methods to Registry
Make Registry enumerable

Registry already responds to #each, so including the Enumerable module
gives us nice methods like #select and #collect fo' free!
Add Registry#empty? to check if a registry has any items
Do not use Enumerable in Registry

Calling methods like #first in Registry is misleading because it returns
a different result than registry.get(registry.keys.first).
Add Push command and tests
Super primitive implementation of Environment#push
Push does not have access to @machine
Make Environment#pushes its own method
Ignore options that come back from the plugin for now
Simplify the API for Environment#push

The API has a precondition that `name` is not nil
Collect push_configs in the Plugin Manager
Remove unused methods from vagrantfile.rb
Define finalize! and __compiled_pushes for Push config