Rebased version of my old patches to bytestring

A beautified version of the pull-request #5 (https://github.com/haskell/bytestring/pull/5).

@tibbe: should I continue with this one?