cleanup(coreos-base/oem-vagrant): Move ssh key into cloud config.

The old behavior of loading authorized_keys from /usr/share/oem is
deprecated, so lets switch vagrant to the new config driven world. :)
add(coreos-base/coreos-vagrant): Import Vagrantfile template

This is the static piece of the Vagrantfile previously defined in
scripts/build_library/virtualbox_ovf.sh. Moving it here so we can start
maintaining the major Vagrant OEM pieces together.
add(coreos-base/oem-vagrant): Import code from coreos-vagrant

Import override-plugin.rb and some VirtualBox fixups from our published
Vagrantfile repo. The current Vagrant OEM depends on this code, making
it impossible to boot without using our special Vagrantfile. Using the
box as a stand-alone entity worked up until recently and is something
users expect to work.

Also bump the minimum Vagrant version to 1.5, matching our current
documentation.

Fixes https://github.com/coreos/bugs/issues/5
fix(coreos-base/oem-vagrant): Move user config handling out of ruby code

There's no reason for handling vagrantfile-user-data in the Vagrant
plugin, move it to the OEM cloud-config.yml along side the user-data
handler. Use the generic user-config@ unit as well.
fix(coreos-base/oem-vagrant): Split up plugin, use change_host_name hook.

The old override-plugin.rb didn't actually properly monkey patch the
change host name function because it was missing a requires line
pointing to the file it is defined in upstream. To clarify things split
the code into two files that match the upstream names. Additionally
using this hook as it is intended means it works if a host name is
defined but additional networks are not.

As part of the split switch to starting the units directly. The
indirection through a path unit just adds complexity.
fix(coreos-base/oem-vagrant): Rework network configuration code.

 - Only write configs for static networks, DHCP will work by default.
 - Match interfaces by MAC address if possible.
 - Use the configured netmask instead of always using a /24
 - Define default addresses in /etc/environment based on the type of
   network. Now using both a private and a public network works!
fix(coreos-base/oem-vagrant): Add timeout for /etc/environment

The environment file will not be written if there are no public or
private networks defined since the configure_networks hook is never run.
Report an error after one minute to make this situation less confusing.
fix(coreos-base/oem-vagrant): Add hook to make it easy to set base_mac

The file `base_mac.rb` will be re-written when packing this into a box.
bump(coreos-base/oem-vagrant): Update revision, include box configs.
fix(coreos-base/oem-vagrant): Create directory for vagrant user-data.

This fixes compatibility with the existing Vagrantfile in
coreos-vagrant which expected the plugin code to create this directory.
Also, the units can be runtime since they are always written at boot.
fix(coreos-base/oem-vagrant): Fix up comments

Fix some comments that were written for a previous iteration of code.
Merge pull request #568 from marineam/vagrant

Vagrant hackery redux