Aid debugging and always exit indicating error on uncaught exception

Attached is some simple code that should fix the following issues:

* When running an oil command that generates an uncaught exception - catch it and exit with status code 1. Even if the exception does not extend from Oil\Exception.
* When exiting because of an exception. Print some more helpful exception details (type, message + stacktrace). Also recursively iterate through the previous exceptions and print their details as well.