Subversion failes with "option ':command' is not a valid option for Mixlib::ShellOut"

Improper use of `shell_out!`, which uses Mixlib
Fixed #2633
Allow knife to install cookbooks with metadata.json

Previously `knife cookbook site install` would only install cookbooks that have
a metadata.rb. This has a number of problems, mainly that compiled metadata is
supported elsewhere in Chef.

This commit adds support for parsing the metadata.json, even though the
metadata.rb is still preferred (since that's what the rest of Chef does).
Use a real error class when metadata is not found
Clean up knife cookbook site install tests
Update CHANGELOG for #2630
Add unit tests for cookbook site install #preferred_metadata
Merge pull request #2634 from BackSlasher/repair-subversion-command

Subversion failes with "option ':command' is not a valid option for Mixlib::ShellOut"
Contribution information for https://github.com/opscode/chef/pull/2634.
Merge pull request #2645 from opscode/sersut/contrib-2634

Contribution information for https://github.com/opscode/chef/pull/2634.
Added contributor for Issue 2625
Merge pull request #2642 from opscode/btm/site_install_json

knife cookbook site install json support w/tests
fix apt default_release attribute broken in 12.0

the apt provider attempts to check if it has a provider that
responds to :default_release (i.e. a real apt_package resource) via
if the provider attribute is explicitly set or not, which is relying
on a side-effect which broke in 12.0.  the correct behavior is just
to duck-type the new_resource object and see if it
respond_to?(:default_release) and then use it if it does.

Also the unit tests were not testing the apt_provider against both the
package and apt_package resources.  Added some hacky spec code (which
needs a cleanup) to at least exercise the use cases.