removed unused variable definition
Merge branch 'CHEF-3664'
Add -A option to knife ssh and knife bootstrap
Also allow enabling agent forwarding from knife config
Add test for bootstrap setting the forward-agent option
Merge branch 'CHEF-3779'
CHEF-3685: Fix rspec tests to work from the gem.

Some spec examples operate on .dotfiles. These files were missing
from the rubygems.org gem file.

Note that the fix (with FNM_DOTMATCH) correctly avoids the top-level
dotfiles because the glob operates only on subdirectories.
Don't pass directories to Gem::Specification#files.

http://rubygems.rubyforge.org/rubygems-update/Gem/Specification.html#method-i-files
"Only add files you can require to this list, not directories, etc.
Directories are automatically stripped from this list when building
a gem, other non-files cause an error."
Fixes CHEF-3307

Use metadata name when loading cookbook

If a name attribute is loaded from a cookbooks metadata, use this for
dependency checks and references as specified in documentation. Ensure real
pathname is retained so that manifests can still be generated correctly.

In addition we must read the metadata implicitly when cookbooks are loaded to
ensure we are using the correct name.

Also include a deprecation warning when encountering missing names in metadata
as this is a planned breaking change in Chef 12.
Tests CHEF-3307

Test cookbook loading, shadowing and metadata deprecation warnings assocaited
with the CHEF-3307 changes (use of metadata name as cookbook name in preference
to file system pathname).

Includes new nginx cookbook (with alternate pathname) and a shadowbook with
another pathname.
Improve deprecation warning
Lazy load metadata
Lazy load cookbooks
Merge branch 'CHEF-3307'
http://tickets.opscode.com/browse/CHEF-3442
add tests to avoid futur regression
Merge branch 'CHEF-3442'
require 'chef/platform' from lib/chef/rest.rb
Merge branch 'CHEF-3535'
[CHEF-2420] Support annotated tags in the git provider

Annotated tags have their own SHA and also point to a SHA in the git
repo. Using git ls-remote $REPO $TAG* the tagged SHAs can be
identified by the '^{}' suffix appended to the corresponding tag name.

When resolving the remote reference, we now search for $TAG* and use
the SHA of the tagged commit (with ^{}) if it is there and otherwise
use the SHA with an exact match for $TAG (to avoid capturing anything
extra via the glob used to return refs).

If no revision is specified, we force 'HEAD' in the git ls-remote call
to constrain what can come back from the remote. Further, we protect
against a badly chosen annotated tag named 'HEAD'.

The functional test suite includes a git bundle of a small example
repo. We found that locally cloning this bundle provided the closest
simulation of `git ls-remote` behavior. YMMV depending on git version.

The test suite could be extended to improve overall coverage, but does
verify the desired behavior for annotated tags.