Implements Input/Output Stream helpers

Add Input and Output Streams around driver objects. These streams are
created with a Factory which takes care of opening and configuring the
driver before creating the streams.

Having the streams is very useful when mixing this library with third
party modules, which expect Java streams as input/output.