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.
Hmm, so I was copying this test from that same file:
https://github.com/berkshelf/berkshelf/blob/master/features/commands/install.feature#L355-L379

That does seem a little odd, since I know the format has changed to be more like Bundler's .lock files; I'll try to find out the new format and probably update the other ones in here too.