search prerelease gems for subcommands

- otherwise we can't test knife gem rc releases
Add missing require for thread to Chef::CookbookUploader

Fixes 1.8
adding the -a / --all option and correcting the spec file
nil signifies absence of an attribute, which can be used to remove an attribute
add spec for mailto attr comparison bug
move attribute setting locally inside the spec
add enable_checkout attribute; add ability to override 'deploy' with checkout_branch name
move check up to wrap checkout called from action_checkout
some tests for the enable_checkout option
changes to fix failing tests
newly released mime-types requires
ruby 1.9.2, so travis tests weren't passing 1.8.7
CHEF-4759: chef-solo --no-color default on windows

- also add --color option to chef-apply and same default for win
ID validation for knife data bag creation.
Catch correct exception.
Added knife spec to test invalid name input for data bag create.
CHEF-4748: Use dot to access method instead of double-colon (language convention)
support configurable concurrency
CHEF-4747: convert test to use double from openstruct
Refactor handle_command_failures method.
Improve an error message "No cookbook found".