Add output_callback support

Using output_callback as argument to shell/pipe commands, you can now
process output as it comes in.