Handle exceptions and keyboard interrupts better

- Actually spit out the stack trace on exception in the log
- Handle KeyboardInterrupt in various places