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.
Per @cjshmyr's comment this is now private, and should therefore be `self` as you had it before.
`self` = private/local/within scope
`Self` = public