ValueModification messages are very inefficient: they are sent to all components of an entity than usually only one (the owner) is interested in them.
It is also bad design to listen to messages for another component - instead we should rely on messages from that component. The only cases currently were range updates from Attack/Heal, which i've grouped here but in a finished diff should probably be decoupled.
See ticket for more details.
This diff changes those two things by using a custom path for Value Modification that only sends those messages to the correct component.
This requires some update by introducing new messages for behaviour which was previously hardcoded.
Note that the Promotion messages could probably be used to help the rP27636 / D4984 hack.
This diff also removes the 'batching' for obvious reasons, I think that's fine in the current logic. The only places that really benefitted were AIInfluence/GuiInterface, we might want to do something else (see below).
TODO: figure out what to do with global messages in AIInterface and GUIInterface. The one in TerritoryManager should be replaced by changing TerritoryInfluence.