extract cache control data class to its own file
Add API documentation to CacheControlData
ensure HTTP backend sets cksum on cache control data
remove etag/mtime responsibilites from content class

This is handled by each protocol-specific back-end that chooses to
implement it.
Unit specs for selinux code.
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.
[CHEF-2750] SCM/Git LWRP: Synchronize submodules

If enable_submodules is true, Git submodules should not only be updated (git submodule update --init), but also synchronized (git submodule sync) to support the case, when submodule URLs change.
Fix unit tests for [CHEF-2750]
[CHEF-3471] awk not needed for bootstrap templates