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.
These `return` statements cause you to abort the entire loop; I think the returns @ 721, 733, 746 can be replaced with `continue` or was this intended?