[mc] Access memory from another process
The goal is to be able to move MC in a separate process which should
be more robust and easier to develop:
* avoid using two heaps (which is combersome);
* avoid weird interactions bewteen the MC and the application;
* use optimisation for the whole MC process;
* avoid the stack-cleaner for the whole MC process.
The functions MC_process_read and MC_process_write are defined to
abstract memory access:
* when the target process is the current processs, they call
`memcpy`;
* otherwise they call `read` or `write` on `/proc/$pid/mem` (on newer
kernels, `process_vm_readv` and `process_vm_writev`) could be used.
A lot of bits are missing such as:
* access to `std_heap` is currently not process-aware (the current
process is used);
* access to SIMIX layer from MC;
* communcation/synchronisation between the processes;
* …
Limitations:
* for the per-page/chunked snapshot the current implementation uses
an extra copy (and one syscall per page), we can do better than
this.