Allow characterize to use an existing file, not just a string.

This is useful if you have an external datastream, and it's too big to
load into memory.  Fixes #14