Significantly improved error handling.

zeshy now appears to have implemented the first robust exception handling
functionality for a shell. Now that we've implemented it, of course, we'll need
to significantly refactor the codebase to leverage its tangy nectar... All in
good time, Monsieur Verdoux. "All in good time."