CHEF-4890: Allow gem upgrades

This was preventing chef from finding the candidate version when
upgrading a gem and assuming there was nothing to do
Make sure to call chef-client and knife that we just built, not
just some random ones hanging around in $PATH.
Add option --prevew-archive to `knife cookbook site share`
updates by comment. #1724

- Fix Typo prevew_archive to preview_archive.
- Change message priority from warn to info.
- Add few specs.
Merge remote-tracking branch 'upstream/master' into prevew_archive_before_site_share
change option name --preview-archive to --[no-]upload
Merge remote-tracking branch 'upstream/master' into prevew_archive_before_site_share
Fix a bug when receiving a relative redirect location

Currently when you use a provider that somewhere along the line uses
Chef::HTTP.request or Chef::HTTP.streaming_request, you will receive an
error when the response is a redirect with a relative location.
Have freebsd port use pkg info if the freebsd version is >= 10000017
retry on HTTP 50X Error when calling Chef REST API
Add supermarket_attributes to Metadata

Allow the metadata.rb in a cookbook to specify arbitrary attributes for
use from Supermarket. The usecase for this right now would be setting the issues
and source URLs for that Cookbook instead of specifying them in the
Supermarket UI.
Fix typo in Metadata documentation.
Use individual URL attributes in metadata

Instead of having an arbitrary Hash/Mash of supermarket_attributes, use two
explicit URL attributes at the top level of the metadata: the source_url and
issues_url.
Ensure metadata responds to method before sending, use public_send
Should use client_name instead of node_name
Add --ssl-verify-mode and --[no-]verify-api-cert options.
Use existing Chef::Config values for verify_api_cert and ssl_verify_mode during bootstrap.
Remove unnecessary version check in freebsd port and package tests.
Clean up acl data handler, add username to user handler for cheffish
Remove deprecated @node ivars