JUL logging uncaught exception handler

The default uncaught exception handler logs to stderr which means that uncaught exceptions
can potentially be logged outside of the context of the rest of the logs. UncaughtExceptionHandler
is a default exception handler replacement which logs using jul instead of printing directly to stderr.
In case jul logging fails stderr is used as a fallback.