AttributeModifier and Manager added.

Allows modifiers to be defined per player and per actor.
Modifiers can define prerequisites.
Currently supports production and income.

Allows for tie-in from HackyAI. InsaneAI for RA included.

Pre-work for #6103.
Shouldn't the returned value be based on the type? If so why not use the `ModType` or pass the enum here?