Propagate Throwables to return proper exit code

An outer catch block handles these and calls System.exit(1).
Merge pull request #16 from andrewgaul/system-exit

Propagate unhandled Throwables