Add a Vagrant 1.2+ build lab to generated projects

This lab consists of a `Berksfile` and `Vagrantifle` dropped into the
root  of every generated project.

The `omnibus` cookbook (and it's dependencies) now live external to this
repository (as they should). The `omnibus` cookbook also depends on
plain, old upstream community cookbooks and will be released to the
community site.
remove legacy Vagrant plugin

The previous vagrant plugin that shipped in `omnibus-ruby` is sorely out
of date now that Vagrant 1.1 has shipped. For ease of maintenance it
makes more sense to just add a shell provisioner to project Vagrantfiles.
Multi-VM workaround for `berkshelf-vagrant` plugin

Currently `berkshelf-vagrant` doesn't work correctly with multi-VM
Vagrantfiles. The current workaround is to add a
`config.berkshelf.berksfile_path` to each vm.define block.

More info here:
https://github.com/RiotGames/berkshelf/issues/436#issuecomment-15394731
https://github.com/RiotGames/berkshelf-vagrant/issues/4#issuecomment-15979246
ensure `Omnibus::VERSION` is loaded when omnibus is required
relax s3 config validation

Software is cached in the S3 bucket with public_read ACLs so it possible
to take advantage of s3 caching without an access key and secret key set
in the Omnibus config.
prefix generated project directory with `omnibus-`

This follows the recommended Opscode convention:

* omnibus-chef
* omnibus-chef-server
Add a MissingProjectConfiguration error
Add #maintainer Package DSL method

Now people other than Opscode can maintain omnibus-built packages!
Woo!
Add #homepage Package DSL method

Now non-Opscode users can create packages with their own homepage metadata.

Conflicts:
	lib/omnibus/project.rb
Raise an error if a project has no name

#name is used as the default value for #package_name, as well as in the name of generated Rake namespaces and tasks.
Raise an error if a project has no install_path

Badness will ensue otherwise
Default #build_iteration to 1

If it is not set, odd iteration strings get constructed and sent to FPM.

Also document that this should be a number.
Allow package description to be set (and used!)
Add support for specifying package conflicts
#runtime_dependencies -> #runtime_dependency

This cleans up the DSL a bit by allowing the specification of runtime dependencies one-at-a-time.

Existing Project DSL files will need to be updated.
Add Omnibus::Project#dependency DSL method

This cleans up the DSL a bit by allowing the specification of
build-time dependencies one-at-a-time.
Edit project template to reflect DSL changes
Make MissingProjectConfiguration errors work
Add a project validation step

This should fail the build early if required information has not been
set.  Otherwise all the software dependencies will get built first.
add Omnibus::Software#dependency DSL method

This cleans up the DSL a bit by allowing the specification of
dependencies one-at-a-time.