On execve, reopen /proc/X/mem.

After execve replaces the previous memory mapping, apparently any old open file
descriptor for /proc/X/mem becomes useless. This caused ptrace to unnecessarily
(and permanently) fallback to PTRACE_POKEDATA/PTRACE_PEEKDATA.

This patch also changes some tracer functions to use better types for buffer
length/return.