adding smoke and unit test for chefspec
Break generator commands into seperate files

This commit breaks the generator commands from one big file into
several smaller ones, and requires them. As we expand the number
of generators, we're naturally going to wind up having more than
a handful - which makes the giant file, and its equally large
rspec test, unwieldly.

In addition, it adds Guard support (for faster test results) and
fixes a bug where the error handling in CookbookCodeFile descendents
triggered hard failure in getopt due to lack of passing the params
in. This caused tests that were run with an rspec option to fail,
as the repeat call to parse_options would pick up the default
argv, rather than the mocked argv supplied in the specs.

No changes to the code happen at all, other than location and the
small bug fix.
Merge pull request #114 from adamhjk/split_generators

Break generator commands into seperate files
Merge pull request #101 from opscode/lcg/chefspec-verify

adding smoke and unit test for chefspec
Adds chef generate repo support

Creates a chef-repo that is identical to the current state of
github's opscode/chef-repo repository.

Has options that match those of knife cookbook create, for
license, copyright holder, etc.

Includes --policy-only support, which puts the cookbook
directory into .gitignore and adds a different README
file.
Merge pull request #117 from adamhjk/generate_repo

Adds chef generate repo support
Make it easier to write new generators

Adds ChefDK::Generator.add_attr_to_context, which handles adding
instance variables (and optionally their values) to the
ChefDK::Generator::Context and ChefDK::Generator::TemplateHelper. This
makes writing new generators much easier, because you don't have to be
aware of how/when/where the context variables are set up - you can just
focus in on the generator you are adding.

Additionally, any option added to a generator is dynamically added to
the Context and TemplateHelper if it has a value, making the barrier
even smaller. One thing to note is that generator options really should
either be true/false or have default values that make sense for the
generator, or you're liable to get errors. (This is appropriate, I
think)

While cleaning up the existing context accessors, I noticed that at
least one of them (license_description) existed in a template, but was
never set anywhere. I implemented the method within the TemplateHelper,
so that you can dynamically ask for the correct license description to
embedd in a file, including what to comment the license with.
Merge pull request #118 from adamhjk/easy_generators

Easy generators
HAX: Get policyfile working end to end.

This commit needs severe cleanup...
Enable rspec verification of method stubs
Test Policyfile uploader
Add tests for recipe normalization in lockfile
Skip chefignore-d files when calculating checksums
Test cookbook loading for uploads
Update data bag representation of policyfile to match chef-client
Clean up TODOs related to issues in chef-client codebase.
Update gemspec to require chef 12.0 prerelease or greater
TEMPORARY FIX - point gemfile at git branch of chef client for now
Remove direct dependency on chefspec