First pass at cleaning up my xmacro logic

I found some new methods in the docs that lighten the load on my end.
These are yet untested in actual xmacro for me - so my syntax may be off.
Fixes tabs vs spaces!!!!

I really need to get sublime setup!
Fixes tests to use keyStr method
Merge branch 'dd/xmacro-rework'