search prerelease gems for subcommands

- otherwise we can't test knife gem rc releases
Remove an unused variable in spec/unit/client_spec.rb
No longer mock_chef_rest_for_client is not used.
Enable integration tests.
Use bundle exec to run rspec.
Launch chef-client with ruby so that it launches correctly on windows.
Check for ENV['CD'] instead of ENV['PWD'] on windows.

Also the associated test is removed as I am not sure how it should be fixed.
CHEF-3582: Fix #check_lock under why-run

We assume in whyrun mode that a non-existant user would be created before we
attempt to lock it, so we return false from #check_lock when user does not
exist and we are in why_run mode.

Conflicts:
	chef/lib/chef/provider/user/useradd.rb
added the initial command for checking environment cookbook contraints.
renaming to compare and braking the code up into some functions and added unit test, also added the -m mismatch option.
removing some comments and it seems I really cannot type the word constraints correctly. Or I should just drink less beer when coding..
[CHEF-4363] Allow adding event_handlers via config file
[CHEF-4363] Remove unnecessary restoration of Chef::Config
Allow single letter usernames.

On non-Windows platforms single letter usernames are valid,
so make the valid user regex allow them.
CHEF-4633: fix inefficient assignment in deep merge
[CHEF-4673] Change docs URL in chef-shell.
[CHEF-4676] Update pinning on net-ssh-multi to ~> 1.2.0
[CHEF-4676] Remove overly-aggressive version pinning per @lamont-granquist
pass elapsed time along with node/exception in event hanlders
compute elapsed time without altering public api
CHEF-4379: initialize @end_time to @start_time

Prevents a TypeError when working with elapsed_time if something unexpected
happens.
Merge pull request #1102 from ryotarai/remove-unused-variable-in-client_spec

Remove an unused variable in spec/unit/client_spec.rb
Merge pull request #1109 from opscode/ci-script-fix

Enable integration tests in CI and fix the way tests are launched.