Add json_class support w/o JSON for most types
Use consts for class strings
mutate the incoming hash

I'd rather not, but this object should be local to the caller at this
point so it seems less bad than creating a bunch more objects
add fallback deserialization to hash for Resources
allow lookup of resources without symbol creation
switch from JSON.parse to JSONCompat
rdoc json compat methods
[CHEF-3863] improve error compat with old impl.
CHEF-3863: Return to not trusting the JSON gem at all

Within days of relaxing to a pessmistic constraint on patch release there was
a patch release with breaking changes. We'll have to go back to testing the
latest version by hand again.
11.4.0.rc.0
ensure writes are flushed in run lock IPC
set sync=true on IPC in run lock tests
fix race in test setup

the heart of the test is confirming that the last 2 messages are p1
releasing lock and then p2 acquiring it. The two messages confirm that
the test case is set up correctly.
remove setup message, it's a race either way
Merge branch 'more-runlock-fixes' into 11-stable
CHEF-1292 Lower json stack depth tests to 301

1001 was causing stack level too deep errors on 1.8.7. This is
still a huge stack depth and 1001 was arbitrary.
Release 11.4.0
CHEF-3895: Add Chef::Checksum to JSON class hack
Fix 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.