Add rr's own locally cached view of processes' address spaces.

This commit adds a cached address space structure and updates it per
syscalls that affect memory mappings: mmap/mremap/unmap/et al.  The
patch is straightforward except for the |is_adjacent_mapping()| helper
which decides if two mappings should be merged.  The subtlety in that
helper is that the heuristics were chosen so that the cached map and
the kernel's (/proc/[tid]/maps) maintain a bijection, for simplicity.