Add a handler for otherwise unhandled exceptions in the main BuildStream app
This implements half of the recommendations Tristan made in #197 (closed) and the first attempt !240 (closed). It replaces sys.excepthook to give us a chance to print the details using App's message_handler routine, making the output consistent with other exceptions and preventing it being overwritten by the status bar.
Edited by Jim MacArthur