test loading breakpoints
breakpoints are correctly set, even for files loaded at runtime
Allow responses to go to a one-off listener instead of the default listener

This way certain requests can be handled by a custom callback instead of
the default handler for that message type.

It attaches a request-id when sending the message.  Responses already include
a supplied rid.
Cache the program name in the debugger object
Make the MessageHandler session stuff actually usable
Saving breakpoints is working from the gui