Async output for scheme shell

This implements the enhancement requested in issue #795  -- long running scheme programs will have their output printed immediately to the socket, instead of being collected and dumped at the very end.

Caution: this seems to work for casual use, but contains race conditions that could garble output under high CPU loads.   Please report any problems.