Detect non-tty master operation & act accordingly

When not running on a TTY, don't attempt to clear the tty region that
the zeus master would expect to be clear-able. Also, don't redraw the
status chart in a loop, and timestamp updates so folks can tell when
the last update occurred.
Don't terminate on SIGPIPE

Zeus server receives SIGPIPE when a client quits unexpectedly (when it
gets killed, for any reason). This should not cause the server to
terminate; the go default SIGPIPE handler causes the server to react
correctly and remain alive and responsive (despite complaining about
the broken pipe).
Merge pull request #266 from antifuchs/dont-exit-on-SIGPIPE

Don't terminate on SIGPIPE
Reap runner and sub-slave processes in slaves.

When running a command, the runner process correctly waits for
termination of that command, but the slave also needs to wait for the
runner process. This adds a set of child pids that get waitpid'd
on (with WNOHANG) every time a command is read.
Kill the zeusclient only if something went wrong

Previously, the runner would kill the client process at_exit - this
introduced a race condition where the client would sometimes get the
async TERM signal before it could read the exit status, and exit with
a failure status.

While the reasoning behind killing the client is sound (if the runner
dies without the client noticing, the client could hang around
forever), it should only happen if there's an exceptional condition.
Merge pull request #272 from antifuchs/better-subprocess-handling

Better subprocess handling
conform to `go fmt`
delete built gems in Rakefile clean task
Merge pull request #260 from antifuchs/be-friendly-to-non-ttys

Detect non-tty master operation & act accordingly
ronn is dev dependency for man pages
Return correct exit code from Cucumber's `execute!`
Fixes #270. Thanks to @Darkside73 for debugging.
version bump to 0.13.3.rc2
Fix connecting to a crashed runner while booting

This change adds a second field to the response from a slave node to
the client handler that indicates the state of the slave node. This
allows the server to detect connection to a runner that crashed. When
zeus is still booting, this should send a backtrace to the
client (like it does when Zeus has fully booted).
Merge pull request #279 from antifuchs/connect-to-crashed-processes-while-booting

Fix connecting to a crashed runner while booting
bump version to 0.13.3
Increase read buffer, allow more arguments

This is to fix the same problem reported in #254; 
Even with the fix in #255, I'm still seeing this issue. 

I chose 2**16 to match what @andyl did in adc5766d
Merge pull request #289 from rtlong/master

Another fix for #254
Allow to pass arguments to test method

This will let to pass arguments to i.e. Rspec from within other plan tasks.
I need this to finish up my integration of Zeus and Parallel Tests
Make printing newlines optional in shinylog

Add a ColorizedSansNl method to shinylogger and add an argument to
colorized to indicate whether a newline is desired or not.
Make statuschart less verbose when logging to a non-TTY

On a non-TTY, use fewer lines to say more: Print the process tree as a
nested list on one line, with both colors and status abbreviations (to
allow copying & pasting of log files). Also, print all runnable
commands on one line and all crashed commands on another.

This cuts down the vertical space required to log state of Zeus when
booting to less than a screenful on a large process tree, and allows
easier diagnosis of boot problems in, e.g., a chat room.