vfs: implement sendfile()

An implementation for sendfile() using mmap() and write().
It copies data from in_fd to out_fd without any intermediates.
It assumes that if mmap() succeeds, then munmap() will most
likely succeed. If not, it ignores return value of munmap().

Fixes #363
Fixes #273

Reviewed-by: Glauber Costa <glommer@cloudius-systems.com>
Reviewed-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Jaspal Singh Dhillon <jaspal.iiith@gmail.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
tests: add tests for sendfile()

A battery of tests for sendfile().
The tests belong to 2 groups:
1. copy data from file to file
2. copy data from file to a socket
In both cases, two sub-cases arise: the offset is/is not NULL.

Signed-off-by: Jaspal Singh Dhillon <jaspal.iiith@gmail.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>