Add predicate filtering to compatibility graph comp
Computing the compatibility graph should attempt to
disqualify as many events as possible from the configuration
to minimize the size of the resulting compatibility graph.
This is _esepcially_ important because we will enumerate
all cliques of the graph and subsequently all possible
events contains within each node. This means that removing
even one or two nodes could reduce the time spent in
enumeration dramatically.
For now, the UdporChecker can only prune based on
dependency. Perhaps, though, there are more clever
ways to prune based on whether `a` is enabled e.g.
in knowing some properties about the event structure.
This will be investigated later, but is a secondary
concern to getting an implementation of the algorithm
up-and-running.