Granular `chef update` command

:construction: I haven't written any code yet, just trying to enumerate what the behavior should be for a handful of cases, and looking for feedback on that.

@opscode/client-engineers Thoughts?
What about a context `and the updated cookbook has removed a dependency`?

Tests:
* This removed dependency was not required by any other cookbooks, so it is removed from the policy file.  
* This removed dependency is required by other cookbooks
** And the existing constraint is satisfied by the existing version
** (?) And there is a new version of this new dependency
*** That fulfills existing constraints
*** That does not fulfill existing constraints