Cleanup streaming functionality

This affects stuff like the cockpit.spawn() process promises, and also things like the upcoming http-stream1 code.
    
 * Make proc.input(data, stream) more explicit, where you have to pass true for the stream argument so that the input remains open.
 * Allow only one proc.stream(callback) handler, if another one is registered it replaces the first.
 * The stream handlers can now return a number, which indicates how many bytes or characters were consumed from the data.
 * Add channel.binary field
 * Update documentation.