Tightens up xmacro API

* Updates controller to accept an array of string keys
* Removes the macro_builder - just not needed at this point
* Updates tests to reflect changes