Fix #261 - include path in errors

Added path info to errors where it made sense, and we have it.  Fixed a few minor things I saw along the way, including 2 more instances of callbacks missing `return`, `errno` being a string vs. number, override for the error toString to show the path, missing `err` handling on a check for zipfiles existing, etc.  I've also added tests.

This should help make finding a particular error a bit easier, since you'll know which path was involved.