Explicitly resolve default values if they're Variables.
Explicitly resolve default values if they're Variables.

This is necessary, because otherwise when the macros are kept
in a separate file (loaded with `loadmacro` tag), there will
be various problems, for example, with IfNodes - they'll see
a Variable, but won't resolve it and use object as condition.

So, having a macro like this:

    {% macro egg ham spam="" %}
        {% if spam %}lovely {{ spam }}{% endif %}
        and {{ ham }}
    {% endmacro %}

An invocation

    {% loadmacros "macros/basket.html" %}
    {% macro_block egg %}
        {% macro_arg %}ham{% endmacro_arg %}
    {% macro_block %}

Would result in

    lovely &quot;&quot;
    and ham

I'd note, everything works OK if the macros is defined in
the same file where it's used, as default values are not Variables
in such case. Due to time constraints, I haven't bothered much to
analyze the problem in depth, and just went with this approach
that seems to produce seemingly correct results.

nalourie/django-macros,nalourie/django-macros,drdaeman/django-macros,drdaeman/django-macros