Make the exit and uncaught exception modals separate
ProgramEvent can now render the program terminated modal
Debugged program now exits when the "Exit" button is clicked from the program terminated dialog

This also implements the disconnect() method on the restInterface.  Any
calls to interact with the debugged program after disconnecting will just
return an empty promise.

Modal buttons now have a value that gets delivered when the render()'s
promise is fulfilled