Reused logic from FieldsMacro in TagMacro. Created a Spec for TagMacro.

Fix for issue https://github.com/CommBank/maestro/issues/219 
Any reason for moving this down? Our normal style guide for imports is to have standard library imports first, followed by external libraries, followed by our own libraries. See https://github.com/CommBank/styleguide.