Formalised out_user_ctx()/vlamap container (+free memory)

(cherry-picked from feature/inline)
vla_cleanup() correctly accesses the vlamap

This was causing the entire cc1_octx to be free'd.
Debug emit logic is in with code-gen - for inline functions, etc

This temporarily removes the symbol-table / decl debug emission.
Emit per-decl (local) and per-argument debug information
Debug scope entry and exit
Only emit debug decls that have an out_val
Tidy symbol location emission - use decls throughout
Fix basic block output ordering - handle previous blocks properly

This makes sure all blocks prior to the one currently being emitted,
have already been emitted - this fixes problems with debug scope
labelling and function-end-returns embedded part way through a
function's asm.
Added debug line scope test
tools/debug_scope for showing debug scope in source
Pull out octx -> struct dbg conversion
Handle debug output for global-variables in local scope
Don't emit Dwarf lexical blocks for function-root scope
Emit a dwarf variadic-tag if a function is variadic
Merge branch 'fix/debug-codegen-link'

This merges generating-debug-info during codegen changes, which will make
things like inline functions easier and changes to stack layout easier.

There are also fixes to basic block ordering where returns would be
generated after code that was before them in source and in scope.