Add CAF::FileReader for read-only file accesses

Fixes #53.
That would work. Print and friends would pretend to print. The only difference is that whatever you change won't make it to disk. I've added the test.