[loader/yaml] Accept a list config dirs

When people are using yaml based configuration, they may want to
separate out default config files and mutable files that might not be
tracked. The easiest way to handle this is to have multiple config
directories, one of which is tracked in version control and the other
one is untracked.

This commit allows Loader::YAML#yamldir to accept a string or array of
strings to make this possible.

Thanks to Charlie Sharpsteen for basically writing this.
[model/base] Add `with_attr` method

A lot of attributes were being conditionally assigned if the attribute
was defined, which introduced a lot of duplication. This commit adds a
helper to simplify conditional assignment.
Merge branch 'yaml-loader-multiple-directories'
Merge branch 'refactor-conditional-settings'
Add example Vagrantfile
Add @since field to Model::Base#with_attr
Update CHANGELOG and version for 0.6.0
Add support for Gemfile.local
Spec tests for the YAML loader

Currently covers the behavior of the `yamldir` method. The `yamlfile` method
is pretty trivial.
Use deep_merge when loading configs from YAML

Adds a dependency on the `deep_merge` gem and uses it to merge configs loaded
by `yamldir`. This allows top-level entries such as `vms` or `roles` to be
broken out into multiple files and allows config in one subdirectory to
override or extend the config loaded from another subdirectory.
Merge pull request #15 from Sharpie/deeeeeeeeeep-merge

 Deeply merge loaded YAML files
Update CHANGELOG and version for 0.7.0
Call DeepMerge directly to avoid shadowing

Turns out that the i18n library also monkeypatches `Hash` with a `deep_merge!`
method. The method is mostly the same, but has some differences when it comes
to merging sub-Arrays.
Merge pull request #17 from Sharpie/fix-array-merge

Call DeepMerge directly to avoid shadowing
Update CHANGELOG and version for 0.7.1
Support for YARD documentation

This patch:

  - Adds `yard` to the development group of the Gemfile. `redcarpet` is added
    as well in order to support Markdown formatting.

  - A `.gitignore` file is started which includes YARD and Bundler artifacts.

  - A `.yardopts` file is started which lists non-code documentation.
Start a Getting Started guide

This guide will walk through transitioning a small Vagrantfile to
vagrant-config_builder and provides a jumping off point for the discussions of
things such as formats, models and filters.
docs: Expressing Configuration as Data

This section gives an example of converting a Vagrantfile to ConfigBuilder
YAML. It also discusses how loaders work.