[CHEF-3597] Handle frozen strings in knife.rb chef_server_url var.
[CHEF-3572] Fix chefignore whitespace matching

`COMMENTS_AND_WHITESPACE` matched lines starting with word characters
(\w) when it should have matched whitespaces (\s). Thus comment lines
starting with spaces were not skipped but filenames with only word
characters were.
CHEF-3568: expand path in validation_key for bootstrap

Allows ~ in path.

Some day we should probably expand paths in Chef::Config.
Also expand encrypted data bag secret while we're in there.
CHEF-3411: Do not try to inspect recipes that do not exist

We can't easily look at a recipe that was written in chef-shell, so
we should try to open that 'file' because we will mask the real
exception.
try running functional tests first

...should help avoid pollution of global state from unit tests
replace thin w/ webrick for func. test server
fixes binmode issues on windows
remove deprecated `has_rdoc`
fix binread for ruby 1.8
Switch template provider to FileUtils.cp

This reverses the changes made in CHEF-1396. When copying a file over
an existing file, the permissions of the existing file are maintained.
When moving the file the permissions of the source file are preserved.
Since CHEF-1396, we now set permissions after copying (formerly moving)
the file, but only do so if there are permissions specified by the user
to be set.
move test.xml ci output file back up to workspace directory
Update path for require

spec/support/prof/win32.rb became spec/support/platforms/prof/win32.rb in
1172bb6b4459d0cf0a0dc8d44ac8454a58aa4ede
Fully qualify Windows clases in stress tests

CHEF-3155 moved Chef::Win32 to Chef::ReservedNames::Win32 to avoid
collision with the Win32 gem namespace
Add stress tests to jenkins on windows
Preserve return code from running rspec
exit from shell jenkins shell script

too much windows in that moment there; need to exit and not return
tests: use File.expand_path for expected key location
CHEF-3555: fix knife cookbook site install when String

Ensure we turn cookbook_path into an Array before calling #first on it,
as this does not work in Ruby 1.9+

H/T Aaron Kalin for the fix
CHEF-3555: Fix unit tests on windows

I was worried about using @install_path because of its distance from this test;
if someone change it to an array, it would defeat the purpose of the test.
Alternately, I could have duplicated the short block that sets @install_path
based on platform, but for the sake of simplicity just took the provided
@install_path from the before block.
[CHEF-3650] check for whyrun using why_run key in doc formatter