Ignore gem files in project root
Add vagrant-spec to test dependencies

`vagrant-spec` is a library of RSpec contexts and helpers that makes it easier
to test Vagrant plugins.
Add acceptance tests

Starting with a simple acceptance test that boots a CentOS 6.5 machine and
installs a PE agent 3.2.3 on it.
Move version validation into provisioner

By validating the PE version after the provisioner merges configs, we can
ditch a bunch of troublesome logic in `Config::PEBootstrap` that messed with
global state.
Remove stray pry requirement from spec tests
Run acceptance tests against a local webserver

Added a simple RSpec context that boots a WEBrick server and uses it to serve
PE tarballs. This context is used in an acceptance test that exercises remote
file copy.
Refactor Transfer implementations into modules

The `Transfer::File` and `Transfer::OpenURI` implementations used be classes.
Now, they are modules. This allows a bunch of instance object code to be
dropped and paves the way for adding new transfer operations beyond `copy`.
Add a read method to the Transfer module

Added a new method, `Transfer.read`, that returns the content of a URI.
Add version_file attribute to global config

The `version_file` is a new attribute that specifies a path relative to
`download_root`. This path will be read and the contents used to populate
the `version` config value.
Add release attribute to global config

Release is currently a no-op attribute except for the fact that it is
substituted for any `:release` key in a `download_root`.
Add VersionedPath utility module

This module makes the path substitution logic used by `PEBuild::Archive`
available to other parts of the PEBuild codebase. Eventually, path substitution
should be consolidated into one place.