identify mutually exclusive actions

An action can be mutually exclusive with another action by destroying
one of its preconditions when publishing property values. Such actions
cannot be executed within the same time step because the order of
execution would be undefined.
refactor ActionReachabilityIndex

Change parameter order of #isReachable to be similar to
ActionMutexAction#isMutex.
Use a mutable multimap to index reachable actions as an immutable map is
not necessary.
refactor widget action

Remove explicit definition of published properties as these can be
derived from an action's effects.
Also remove the concept of explicit property publishing from the mashup
ontology.