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.
Showing with 118 additions and 27 deletions