Fix incorrect version in cookbook manifest

CookbookVersion does not clear its memoized manifest data when input
data is mutated; this results in an invalid `name` field when ChefDK
updates the version number.
Don't attempt an upload when all cookbooks exist on the server

Chef Server treats an API request to upload zero files as an error, so
skip the upload when all required cookbooks are present on the server.
Merge branch 'fixup-erchef-api-errors'

fixes #208