Fix CHEF-3307 & CHEF-3490

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.

CHEF-3490: Name attribute in metadata should be required

Add a raise to bail out with an error if a cookbook is loaded that fails this
new requirement.
CHEF-3307: Move test data around in prep for tests
Tests for CHEF-3307 & CHEF-3490

Add metadata.rb files where required, retarget various tests to new openldap
test cookbook locations, add explicit test for throwing a RuntimeError when
name is not set in metadata.