InstSelector restructuring and addition of FuncName instruction selector.

Controller now has a FIInstSelectorManager, which maintains a list of all InstSelectors that the user chooses. Each selector creates its own set of allowed instructions, and then the manager computes the set intersection of all of them and returns.

This is a cleaner solution than what was previously discussed on the mailing list. Making a special InstSelector to contain others and AND them together required changing some of the class layout for FIInstSelector because a sibling class would need access to private data. This method is more flexible for future development.

A major advantage of this design is the simplicity of adding selectors. The input YAML file now expects a a list of selectors to use. A new test program has been added, which uses both funcname and insttype selectors and demonstrates the power of using both at once.