Revert "Merge pull request #1901 from opscode/dont-prepend-to-relative-paths"

This reverts commit 1241ea6f9866d0e61d11129bb32e5fc96cd2bac0, reversing
changes made to 34d956c6b96087e6ca4bfbc9080037ded481709d.

Conflicts:
	spec/functional/resource/file_spec.rb
	spec/functional/resource/link_spec.rb
	spec/unit/provider/link_spec.rb
As https://github.com/opscode/chef/issues/2580 summarizes, Link resource need to support relative paths in its 'to' attribute since one can create a symlink pointing to a relative location. This is useful if the directory that symlink resides in moves to a different place (e.g. mounting a disk on a separate location).

This commit preserves relative paths inside the "encode_path" method used by the link operations and expands relative paths in similar fashion when being used by file operations.
Subversion failes with "option ':command' is not a valid option for Mixlib::ShellOut"

Improper use of `shell_out!`, which uses Mixlib
Fixed #2633
Windows msi package privoder unit tests run on all on all systems
Add specs for windows msi_spec
Bug #2625: Include ShellOut mixin in msi package provider
CHANGELOG information for https://github.com/opscode/chef/issues/2580.
Merge pull request #2623 from opscode/sersut/revert-1901

Preserve relative paths in Link resource
Changed spec description
Merge pull request #2637 from opscode/jdm/issue-2626-rebase

Jdm/issue 2626 rebase
Convert knife specs to let bindings
Add specific error messaging for SSL errors to knife

Knife now gives an error message like this when an SSL error occurs:

```
ERROR: Could not establish a secure connection to the server.
Use `knife ssl check` to troubleshoot your SSL configuration.
If your Chef Server uses a self-signed certificate, you can use
`knife ssl fetch` to make knife trust the server's certificates.

Original Exception: OpenSSL::SSL::SSLError: SSL_connect returned=1
errno=0 state=SSLv3 read server certificate B: certificate verify failed
```
Merge branch 'knife-ssl-error-messaging'
Added changelog for issue 2625
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"