adjust package structure in codegen (vm -> avian::codegen and avian::codegen::lir)

The eventual intent with the lir namespace is to formalize some of
the important bits of Assembler interface, to be tested, debug-printed,
and potentially, serialized.
factor out assert / abort / expect implementations
begin moving register allocator out of compiler.cpp