Vagrant as a development and functional test environment

I'm opening this PR in case anyone wants to review before I merge in week or two. Feedback welcomed!

This adds Vagrant to the mix so one can easily bring up a VM to test the module. By default, the VM will use the module to create a Silex project at `/tmp/silex`. But it is also a good bench to work on the module when an infrastructure with Puppet and an agent to test with is not readily available.

Since there is a conflict of the RSpec fixtures symlink (the symlink to the composer module is invalid when viewed inside the VM), I am using Rake tasks to bring up the VM so that `spec_prep` and `remove_symlink` tasks are run to ensure the `puppet apply` works inside the VM.

This was ultimately so that I could contribute back to the module while I have no Puppet infrastructure or projects taking advantage of Composer or PHP. I hope others might find it useful for similar reasons. It also sets us up for something like [Beaker](https://github.com/puppetlabs/beaker) as a functional testbed down the road.