search prerelease gems for subcommands

- otherwise we can't test knife gem rc releases
OC-10380: skip checksumming for no-content files
OC-10380: add polymorphism
spec tests for checksum

- plus stubbing of things that weren't stubed
- and changing stub! to stub
fix windows pathing issue in spec tests
[CHEF-4110] Add whyrun_safe_ruby_block resource
Merge pull request #743 from jaymzh/CHEF-4110

 	[CHEF-4110] Add whyrun_safe_ruby_block resource
Merge pull request #1111 from opscode/lcg/OC-10380

OC-10380: skip checksumming for no-content files
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.