Since the majority of the code is using ReadAt API already, map this to
a `readp` "syscall" which does not mutate any state about the file
descriptor therefore making it fairly safe multi-threading wise.
This allows to get rid of read-time mutexes in RamCachedFileLoader and
therefore fixes#9803
This way we don't get slow startup. This will also cache the CSO data,
for example, rather than the raw data, using up less RAM. It might even
be reasonable to enable on 32-bit.