CHEF-4010: Test to ensure we release the run_lock if we fail in #load_node
Fix expected strings
[CHEF-3772] Use the sync(-s) option to get exit status.

*  svcadm to wait and return errors back to the provider
*  switch method from run_command to shellout!
Handle pid file appropriately in forked process

Code and tests to keep a daemonized chef-client's forked process from
reaping the parent pid file.

Without this fix a forked process will reap its parent's pid file,
breaking init script functionality.  A start call to the init script
will then launch a new process, since the init script is ignorant of the
already running process.

A process is considered a fork in case the chef-client daemon is
running and the process pid is not equal to the pid defined in the
pidfile, or if the chef-client daemon is not running and the parent pid
of the process is 1, implying that the process was a fork at some point
and has become orphaned.
Merge branch 'CHEF-3367'
CHEF-4042: add headers argument to remote_file (needs specs)
remove default ErrorReport exception handler
Merge branch 'CHEF-2694'
skeleton of http specs
add missing do/end in bootstrap_spec
modern RSpec update for boostrap_context_spec

* prefer `subject` and `let` blocks to instance variables and before
  blocks
* `eq` instead of `==`
modern RSpec update for encrypted_data_bag_item_spec

* prefer `subject` and `let` blocks to instance variables and before
  blocks
* `eq` instead of `==`
* remove the 'shoulds' from example descriptions
prefer `File.exist?` to `File.exists?`

File.exists? was deprecated in Ruby 1.9
[CHEF-4011] move default secret file path to Chef::Config

* Remove references to DEFAULT_SECRET_FILE from
`Chef::EncryptedDataBagItem`.
* Add new `:encrypted_data_bag_secret` value to `Chef::Config`
* Ensure Chef::Config[:encrypted_data_bag_secret] is nil if the secret
  does not exist at the default path.
* Updated test coverage in `config_spec` and
  `encrypted_data_bag_item_spec`.
[CHEF-4011] `--secret` and `--secret-file` options for `knife bootstrap`

This commit adds new CLI options to `knife bootstrap` for specifying
encrypted data bag secret key (actual string or file) at node bootstrap
time. This approach is more explicit than the previous approach of
reading the path to the secret key from the `encrypted_data_bag_secret`
value in the knife.rb file. For backward compatibility we will still
attempt to load a key from Chef::Config[:encrypted_data_bag_secret].
[CHEF-4011] update bootstrap templates to read secret from context
[CHEF-4011] add secret in knife.rb deprecation warning

This warning should only be displayed if a user has an
'encrypted_data_bag_secret' entry in their knife.rb file.
[CHEF-4011] s/Version1Decryptor/Version0Decryptor/

This properly matches the code in `Chef::EncryptedDataBagItem`:

* Version0Decryptor == legacy YAML-based format
* Version1Decryptor == preferred JSON-based format
Fix trailing whitespace. >_<
[CHEF-4011] improve deprecation message

* Add a reference to CHEF-4011 for users who want 
  more information on the deprecation.
* Give users a pointer that `knife[:secret_file]` may still be used for
  previous behavior.