Before this, running the program with the same input and output file
would destroy the file's contents. Now, it isn't allowed without the new
--buffered option, which reads the whole file into memory before opening
it for writing.
This requires stevedonovan/lapp#1 to be merged so for now this version
is not publishable to crates.io as it is using my fork of lapp.