Beginnings of OSX multi-display support.

Doesn't really "work" yet (mouse can only be moved within the main
display), but brightness adjustments work across all displays.
Give clearer error message on keybinding conflicts.
Rename a bunch of stuff.

No real functionality changes (aside from the, ahem, backwards
incompatible config file syntax).
More renaming: switch & switch-to become "focus".
Further renaming: s/active/focused/ in various identifiers.
Refactor focus-switch structs to match new config syntax.
Improved topology configuration.

Now a dedicated topology block specifies all neighbor links in one
place, making it easier get sane arrangements (while still allowing
insane ones).
Remote/master struct rearrangement.

Unify some stuff that is (or will soon be) need for both remotes
and the master node into a new nodeinfo struct.
Further struct reorganization.

Less use of noderefs and remotes, more use of nodes (formerly known
as nodeinfos).
Move edge-detection to master.

Remotes now respond to each MOVEREL they receive with a MOUSEPOS
message informing the master of the new position of their mouse
pointer after performing the move.  The READY message informs the
master of the remote's screen dimensions; in combination with the
position information from MOUSEPOS messages, the master now does
all the edge-event tracking itself.

This obviously comes at the expense of increased network traffic
(roughly ~2x during mouse movements), but it's still pretty small
potatoes, and worth it for the benefits of keeping complexity
out of the remotes and in the master.
Free memory from topology link list on shutdown.
Accept an optional master-node alias.

Can be use to refer to the master by a string (its alias) instead
of only by the keyword 'master'.
Annotate elog() with __attribute__((format(printf,...))).

And fix the error turned up by the resulting warnings.
Add 'mouse-switch = slide' setting.

Just a shorthand form of 'mouse-switch = multi-tap 1 ...'.
Don't exit on EINTR from select(2).
Clean up when remotes exit.

Remotes now appear leak-free according to valgrind, at least in the
basic testing I've done.