Factorize code to be run on serialized lines

This simplifies running more code after all loops have been
unrolled/serialized.
Handle register aliases after unrolling loops

Register aliases can be set conditionally within loops as well,
so they should be evaluated only once the loops and ifs within
them have been handled.
Support converting arm assembly to armasm syntax

This syntax is supported by the official arm tools (untested)
and by microsoft's assembler.

This mode is enabled if the assembler tool name matches
armasm. In this case, the source is preprocessed by 'cpp'
from the system, and the output is written to a temporary
.asm file (since armasm can't read input from a pipe).
Add a script for comparing the disassembly with binutils