prevent directory traversals below _base_ (fixes #2):

- unify read and size into Fs_common
- introduce check_filename which uses realpath to ensure that requested name is below base
- guard all file system accesses with check_filename
Also, GNU `realpath` may set `errno` to `EACCES` or `ENOENT` and then return a non-NULL pointer to the failing prefix.