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.
Style nit: Helper / inner classes are usually put at the end of the parent.