A macro factory is capable of taking a macro directive (a string) and
returning a callable which when called, will replace the portion of the
DOM upon which the macro was placed with some different DOM.
Given a context object and a name, return a callable which responds to
the signature (context, *parameters) and returns an object which is
flattenable.