Moves common macro functionality in MacroTrait.

Also unifies macro tests and space correction.
Could add macro trait on the Arr class when implemented in 4.1.

I didn't remove Str macro tests and I added Response macro test, because method overrides can break macro functionality.

What do you usually do in these cases?
Make a shared test that can act on different objects?
Move individual trait implementation to the trait test?
Don't care about these cases?