AI meta data

Work done to make AI supportpower usage slightly smarter. Refer to #5830 

Allows some basic usage rules to be defined in yaml for supportpowers.
You may want to pass a reference to HackyAI to the constructor, store it, and then use `HackyAI.random` here.