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.
Extract & refactor `kitchen diagnose` subcommand.
Extract & refactor `kitchen test` subcommand.
Extract & refactor `kitchen ACTION` subcommands.
Extract & refactor `kitchen driver discover` subcommand.
Remove unused code from CLI-related files.
Merge pull request #302 from test-kitchen/cli-refactoring

CLI refactoring to remove logic from cli.rb
Modify cane in Rakefile to use .cane file.

This allows a developer to run the `cane` command as well as `rake cane`
or `rake quality`.
Add Ruby 2.1.0-preview2 and newer RubyGems to Travis test matrix.
Reorder Travis Ruby versions & add 1.9.2 to test matrix.
Refactor Kitchen::Command::Console to remove duplication.
Fix testing regressions for Ruby 1.9.2 around YAML parsing.
Ensure that Ruby 1.9.2 uses Psych parser by default.

Since all later version of C-Ruby use Psych, this leads to more
consistent YAML parsing behavior across all Ruby versions.
Assume Psych YAML parser is used now for Ruby 1.9.2.
Use SafeYAML.load to avoid YAML monkeypatch in safe_yaml.

This will leave YAML loading in Test Kitchen as implementation detail
and avoid polluting other Ruby objects.
Ensure that `kitchen help` exits non-zero on failure.

This should be default Thor behavior, but we can control it in any case.

Closes #305