Remove red as a candidate instance color.

This reserves the red color for errors and exceptions.

Closes #97
Update TravisCI badge to report on master branch (vs. 1.0 branch).
Aggressively filter "non-cookbook" files before uploading to instances.

In order to minimize the amount of extra files in a cookbook project
that must be uploaded to an instance, the prepared directory of
cookbooks is processed to eliminate "non-cookbook" files. The following
files are considered production cookbook files:

* `README.*`
* `metadata.{json,rb}`
* `attributes/**/*`
* `definitions/**/*`
* `files/**/*`
* `libraries/**/*`
* `providers/**/*`
* `recipes/**/*`
* `resources/**/*`
* `templates/**/*`

References #35
Fix tailor formatting.
Merge pull request #124 from opscode/filter-cookbook-files-to-upload

Aggressively filter "non-cookbook" files before uploading to instances.
Assign Celluloid.logger to Kitchen.logger which won't open a file.

This helps prevent a .kitchen/logs/celluloid.log being written when the
test suite is run.

Closes #95
Remove bright_red as a candidate instance color.

References #97
Fix ANSI color codes for bright colors.

Now with more colors!

Closes #96
Refactor Rakefile & introduce `rake quality` task.
[Breaking] Introduce Providers to support chef-client & puppet.

Note that work on Providers is ongoing and not feature-complete as of
this commit. Tread lightly, y'all.

New classes/objects:

* Kitchen::SSH - Helps maintain a persistent connection with an instance
  between commands and transferring files. Its only concern is running
  remote commands, transferring files and managing its connection.
* Kitchen::Provider::Base - Base class for provider implementations.
  Base methods that may be implemented will be documented here.
* Kitchen::Provider::ChefSolo - Pulls together code and logic formerly
  in Kitchen::Driver::SSHBase and Kitchen::ChefDataUploader. Its concern
  is implementing the method contract of a Provider, that is providing
  methods returning strings that can be passed to an SSH connection,
  serial connection, or external shell out binary. It is also
  responsible for creating the Chef artifact sandbox containing
  cookbooks, roles, data bags, etc. which can be used by other
  components to transfer to a remote system.

Retiring classes/objects:

* Kitchen::ChefDataUploader - In the wake of splitting code into
  Kitchen::SSH and Kitchen::Provider::Chef, this class found itself
  without a purpose.
Introduce Kitchen::Provider::ChefBase for common Chef provisioner code.
Use ssh_args for test_ssh.
Add support for nodes.

Assuming a directory of `test/integration/nodes/` containing JSON files,
these will be added to the provisioner's sandbox for transfer to the
instance.

Note that this behavior is identical to data bags and roles in that a
suite-specific `nodes/` directory will be used if it exists. For
example, given a suite name of `client` the directory
`test/integration/client/nodes/` will be used for the provisioner's
sandbox.
Add `provisioner` support to .kitchen.yml and default to `"chef_solo"`.

For example:

    ---
    provisioner: chef_solo

    platforms:
      - name: ubuntu-10.04
        provisioner: chef_solo
        driver_plugin: vagrant
        driver_config:
          ...
Add Driver and Provisioner columns to `kitchen list` output.
Initial Chef Zero provisioner: use chef-client on your instances!

This is a first-pass implementation of a chef-client provisioning mode
using Chef Zero, a tiny API-complete implementation of a Chef Server.
The strategy this provisioner uses is the following:

1. Install Chef Omnibus package
2. Create a local sandbox of all Chef data, same as chef_solo except for
   the addition of a client.rb and the chef-client-zero.rb shim binary
3. Install the chef-zero and knife-essentials gems into the Omnibus Ruby
4. Run the chef-client-zero.rb binary which provides all normal
   configuration availble to chef-client

The chef-client-zero.rb shim starts up a Chef Zero server instance
running in the background, overrides some basic configuration (such as
chef_server_url, client_key, and validation_key), creates a chef-client
application and runs it. At the end of the chef-client run the Chef Zero
server will be stopped.
Escape Chef Omnibus install script commands with bash -c '...'.
KITCHEN-75 - support cross suite helpers.

- If there is a test/integration/helpers directory then copy the contents of the test framework specific sub folder
  to the remote suite dir.

For example,

  test/integration/helpers/serverspec/spec_helper.rb

would be copied to /opt/busser/suites/serverspec/spec_helper.rb

This allows common files used across suites (such as spec_helper) to live in one place.
Fixes bundler ref for 1.0.
make init generator safe to run when given an explicit :destination_root