Currently files which need input files take strings with the path to the
file name. This is pretty easy, but eliminates the possibility of using more
exotic sources and write destinations (such as reading and writing from
memory). Since Ben has gotten streams working across the C++/Python bridge,
we could switch our interfaces over to using streams everywhere. Thoughts?