Improve error message when lockfile has missing cookbook or version.

This was found in #1221 which had a corrupted Berksfile.lock due to both metadata.rb and metadata.json present.  However, this could also happen if someone deleted a cookbook from a server, or if someone changed the sources in Berksfile and tried to do an install.  The previous behavior was the ugly exception trace in #1221; now it generates a message explaining that either the cookbook is missing or the version and offers advice on how to fix.
Could you please follow the existing semantics in this class for creating custom error messages. Note that we do not use heredocs.