Make grench main return a proper exit code

Tracks the value returned by eval, and uses it for the exit code.

Also refactors access to the response and pending hash-table into nrepl.ml.