added balancer. note: balancer does not correctly handle errors and
finishes yet!
- improved stream error handling, onError allowed anywhere and does not
stop the stream
- split now creates a StreamSource