Add `json_attributes: true` config option to ChefZero provisioner.

This option allows a user to invoke chef-client without passing the
generated JSON file in the `--json-attributes` option. That way if you
have a JSON definition of your node (including a run-list), the
chef-client run will depend entirely on what is on the "Chef Server".

For example, let's assume we want a node called "mynode" to be in the
"production" chef environment. Given a .kitchen.yml with the following:

    ---
    driver:
      name: vagrant

    provisioner:
      name: chef_zero
      json_attributes: false
      client_rb:
        node_name: mynode

    platforms:
      - name: ubuntu-12.04

    suites:
      - name: default

and an environment JSON description for our chef environment called
"production" in `test/integration/environments/production.json` that
looks like:

    {
      "name": "production",
      "default_attributes": {
        "myenv_attr": "Good to be in prod"
      }
    }

and a node JSON description for our node called "mynode" in
`test/integration/nodes/mynode.json` that looks like:

    {
      "id": "mynode",
      "chef_environment": "production",
      "run_list": [
        "recipe[nginx]"
      ],
      "normal": {
        "some_attr": "hello"
      },
      "automatic": {
        "ipaddress": "192.168.77.77"
      }
    }

then the instance will attempt to register with the Chef Zero server as
"mynode" (vs. "default-ubuntu-1204" in this case) and will receive a
run-list of `["recipe[nginx]"]` from the server. Additionally the
following node attributes will be setup:

* `node[:some_attr]` will be set to `"hello"`
* `node[:myenv_attr]` will be set to `"Good to be in prod"`
* `node[:ipaddress]` will be set to `"192.168.77.77"`

Note that the node JSON format assumes a Chef 11 serialized format which
Chef Zero will use under the hood. For more details, please read:

http://docs.opscode.com/essentials_node_object.html
Change must_equal to must_match to fix test on Windows
Fix Cucumber tests on Windows

* Switch to Aruba::InProcess
* Tag tests that need a spawned shell with @spawn
* Tag all help listings with @spawn
* Tests tagged with @spawn use Aruba::SpawnProcess
* Skip tests tagged with @spawn on Windows
Update omnibus URL to getchef.com.
Add --concurrency option.
concurrency: Number of multiple actions to perform at a time.
Merge pull request #283 from rarenerd/windows-rspec-fix

Fix failing minitest test on Windows
Merge pull request #287 from rarenerd/windows-cucumber-fix

Fix Cucumber tests on Windows
Merge pull request #280 from test-kitchen/chef-zero-skip-json-attributes

Add `json_attributes: true` config option to ChefZero provisioner.
Merge pull request #288 from juliandunn/update-chef-install-url

Update omnibus URL to getchef.com.
Merge pull request #293 from ryotarai/concurrency-option

Add --concurrency option to specify number of multiple actions to perform at a time.
[CLI] Support --concurrency without value, defaulting to all instances.

This commit adds a preference for the `--concurrency` option over the
`--parallel` option. A note is added to the CLI help warning that
`--parallel` will be deprecated in a future release.

The following formats are now supported:

    kitchen test -c               # defaults to instances.size
    kitchen test -c=2             # sets max concurrency to 2
    kitchen test --concurrency    # defaults to instances.size
    kitchen test --concurrency=3  # set max concurrency to 3
    kitchen test --no-concurrency # same as the default, serial mode

References #293
References #277
[CLI] Match a specific instance before trying to find with a regexp.

Given two instance names:

* `default-ubuntu-1204`
* `default-ubuntu-1204-with-small-mem`

An invocation of `kitchen test default-ubuntu-1204` should match the
single instance first before trying to use `default-ubuntu-1204` as a
regular expression.

Closes #282
Update CLI usage strings to show that an instance can be specified.
Make `kitchen login` work without args if there is only one instance.

I've been meaning to fix this forevar!
Greatly improved error recovery & reporting in Kitchen::Loader::YAML.

Now on error when parsing YAML config files or processing ERB, a more
helpful message is displayed to the user, instructing them to run
`kitchen diagnose --no-instances --loader` for more details.

More care was taken to handle specific file loading errors, and a
special case when an entire YAML file has been commented out with hash
characters at the beggining of lines.

Additionally, full spec coverage is in place and ready for future bug
and regression cases.

Closes #285
Extract & refactor `kitchen list` subcommand.
Extract & refactor `kitchen console` subcommand.
Extract & refactor `kitchen sink` subcommand.
Small update to `kitchen version` subcommand implementation.
Extract & refactor `kitchen login` subcommand.