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.
The chef-codebase way of doing that is that the base class should not be plural while the require-the-subplanet file should be plural.  See `chef/provider.rb` vs. `chef/providers.rb`