Remove monkey patch in CookbookVersionLoader, now unneeded
Spec out high level behaviors for cookbook change detection
Add more cases for lockfile validation specs
Use `LocalCookbookNotFound` for local cookbooks
Pass a CookbookVersion object to cookbook profilers

This de-duplicates cookbook loading.
Use the strict #load! method in cookbook version loader
Use strict mode when loading cookbooks for lockfiles
Add basic metadata validation for locked `path` cookbooks
Implement lockfile update for non-dep graph related cases
Include dependency graph in policyfile lock

Policyfile lock can now check deps in updated cookbooks (though only
"local dev" cookbooks are allowed to be modified). To facilitate this, a
copy of the dependency graph is stored in the lockfile. As of this
commit, storing the graph in the lockfile is only partially implemented,
it must still be integrated into the policyfile compiler.
Stub out spec for another edge case
Emit solution dependency info from solved policyfile
Re-use SolutionDependencies implementation throughout policyfile process
Verify that dependencies are still satisfiable after cookbook updates
Validate that cached cookbooks are unmodified.
Update to 12.0.0.alpha.1 of chef

Policyfile code now depends on Chef::CookbookVersionLoader using the
`name` attribute from metadata.rb.
Merge branch 'lockfile-detect-changes'