Add fusion versions of many of the combinators

+ Add the same GHC options as used in conduit ("-Wall -O2 -rtsopts")

+ Adds a 'splitOnUnboundedE' function, which generalizes
'linesUnbounded' / 'linesUnboundedAscii'.

+ Improves the performance of the linesUnbounded* functions, which
previously had a O(n^2) worst case.

+ For consistency with adding 'splitOnUnboundedE', also adds a
'takeExactlyUntilE' function, which generalizes 'line' / 'lineAscii'.

+ Adds a 'foldl1' function, which is used to implement things like
maximum and minimum.
Add quickcheck tests for stream version of combinators

+ fix issues found
Add stream fusion for sinkLazy / sinkLazyBuilder
Add fusion for the remaining fusion-able operators