MC: Start implementing the dependency functions on the AppSide (TBC)
(code committed to gather feedback: it's not used yet)
Instead of one big function handling the dependencies for every kind
of transition on the CheckerSide, we will split that logic between the
observer subclasses and execute it on the AppSide. This will induce
more latencies, but hopefully this will make the code more managable.
This commit introduces a MutexSimcall observer, as we want to group
MutexLock and MutexUnlock together when computing the dependencies.
But we cannot use it yet, as we need to have asynchronous locks for
the existing independence theorems to be usable.