Implement incremental logging

Before this commit, the input consumed by the executed command and the
output produced by it were logged as a whole when the command finished.
Now they are logged incrementally one-by-line as the command executed.
This should help debugging long-running commands.

Note this change alters the semantics of the following methods:

  Recorder#record_stdin
  Recorder#record_stdout
  Recorder#record_stderr

Before this commit, they were called only once in a certain sequence and
they were passed the whole input/output. Now they can be called
repeatedly anytime after Recorder#record_commands and before
Recorder#record_status. Each time they may be passed only a part of the
input/output.
Improve DefaultRecorder spec descriptions

Mostly s/record/log/. We test that the recorder *logs* into the log.