Major overhaul to the zero cpy mmap req handler

Complete files are kept in kernel memory by filling them in pipes. for
each cache hit, only tee and splice are necessary to serve the request,
no more creation and deletion of pipes as requests are reused again.
Multithreaded is still not implemented to fill up the cache but once it
is filled up then the entire thing runs fine on multithreaded.