Commented the defaults in config.h, and added LARGEST_WRITE

the CONTROLLER_LARGEST_WRITE is used as the determining factor of whether
to wait for more buffer space before running additional commands.
Finished overhaul of controller state machines

Commands are no longer states.  They may divert flow to a state
though, like the statedump command.

Commands are simpler, and just return true/false to indicate success
or failure, and the caller handles displaying the error message.
There are also a lot of helper functions to reduce the code needed
for each one.

The logic for overflow is much more sensible now, and the timeouts for
a full pipe are configurable with a new command "comm.event_timeout".

The terminate command has been revised to match the new API doc.
Since the default is now to exit with an error code (since abrupt
termination is mostly an error) I updated all the testcases to look
for that code.

The exec-on-exit feature now supports passing an argument list to
the target.  They can be specified on the commandline as a single
tab-delimited argument.

Logging is now actually asynchronous.  (formerly forgot to set
non-blocking on the file handle)

The testing library now properly handles SIGPIPE when writing to
a daemonproxy that dies.

fixes #24, refs #26, refs #27, refs #23