Defer handling of if conditions within .irp to after the expansion

While the initial implementation in of .iflt and .irpc in
867337f38d did work for each of the constructs on its own, it
didn't work as intended for
libavcodec/arm/mpegaudiodsp_fixed_armv6.S, which used these two
constructs combined, which kind of was what that commit advertised.

This commit defers handling of all .if constructs within .irp
blocks and tries to handle them at the end, after the .irp has
been expanded.

I'm not sure if this interacts correctly with macros and other
things, but at least it seems to handle mpegaudiodsp_fixed_armv6.S.
Evaluate expressions in .rept
When fixing .unreq, don't print one instance immediately

When the .unreq is part of a .rept, both of them need to go along
with each other so that they end up at the right place in the repeated
output.
Explicitly check the $line variable in all conditions in parse_if_line

This avoids the hidden assumption that the parameter passed is
also available in $_.
Handle if conditions in .rept
Refactor handling of .set to a reusable function
Handle .set when expanding repetitions as well
Only replace symbols with their corresponding value if the symbol is defined

This avoids replacing a substring like x0123 in hex constants with
an empty string.