Compatibility with base 4.5/GHC 7.4.

This needs qualified usage of `catch`, since catch is also still exported from the prelude.
Support bytestring 0.9.*.

It doesn't include an NFData instance, but reading a strict ByteString has the same effect.