Reduce the amount of MC locations reading the memory of the App
We still read the remote memory, but (almost) only when creating a new
State representing that state of the App. The goal is then to get
those info through message passing instead of through memory reading.
That should help reducing the bizarre things done by the MC, maybe
allowing to run the App in valgrind or so.
As a side effect, the exploration code becomes much more readable by
using the info from the mc::State instead of invocking low-level
things to retrive those info.