Move reading of /proc/pid/smaps_rollup to a separate thread
As it turns out, smaps/smaps_rollup are fairly slow to read because the kernel iterates all the memory of a process when this file is accessed. This caused the update time of all processes to go up from ~30 ms to more than 200ms.
This changes things to do the reading of smaps_rollup in a separate thread that doesn't block the main update. This reduces update time to ~50ms, which is noticably better. To accomodate the asynchronous nature, some additional functionality needed to be added so we can notify Processes of the asynchronous update.