Fix #25. Early-out on file read errors.

In cases where the file exists but we can't read it for some reason, we now display a sensible error message rather than a traceback.