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.

Also, group arguments to apply(...) in OperandInfos
factor out assert / abort / expect implementations