Update to latest code (in testing at the moment)

Main new feature is caching InputStreams, it speeds up characterization and reduces errors in InputStream consumers that occur when re-using a single stream.