Spec out high level behaviors for cookbook change detection

So far this is just a bunch of unimplemented tests describing the desired behavior. Agree with these? Am I missing any important cases? @opscode/client-engineers 
When is this validation going to be done?

* Before uploading policyfile.lock
* Before using policyfile.lock with chef-zero?
* When `chef compile` is called to see if a new depsolving is needed?