Add base64 encoding per the pattern expected by the web interface.
Fix some pointers and file size things in purr/files.
TODO: files are cut off at random points, despite the efforts to remove
verification of null characters in libbaseencode.
Main one was using file->data instead of file->cursor in
write_into_mmap.
Switching to ftruncate in place of posix_fallocate was done for compat
reasons (posix_fallocate isn't available everywhere _and_ it can fail on
some file systems).