Multi-monitor support for OSX remotes.
OSX master support.

Also a lot of other rearrangement (which would have been nice to
split into separate commits, but oh well).  X11 and OSX now each
have their own separate event loop interfaces which handle GUI
events, monitored file descriptors, and timed callbacks (which are
now done by relative delay rather than absolute time).  The msgchan
module has been reworked to use this, using a read-monitored file
descriptor to provide a callback when a new message arrives (or in
the event of an error).