Refined a lot of code in the listener/dispatcher to make less copies
Eliminate a copy of the module message.

TODO return to shared_ptr for read handler.
Yet more refinements.

Dear Michael,

I know for some reason you'll want to look at this. Don't. Just close your
browser tab and go find another hobby. This isn't finished, I'm just copying
it between computers. And, after seeing what you did to make timedpeersets,
I'm just going to ignore opinions, because that was seriously silly.

- Stephen.