Attempt at fixing stack alignment in rare callee-save cases

Bug is present when callee save happens and a call takes place.
Callee-save alignment is done with regards to cc1_mstackalign, but not
to the alignment given in the impl_call() code. This means that the
impl_call() code thinks it's 16-byte align even though cc1_mstackalign
is 8, but then callee-save register saving comes along and realigns the
stack to 8 (cc1_mstackalign), messing this up.
Reproduce bad stack alignment
Beginning refactor of the stack allocation logic
Changing function prologue logic to use allocas
Continuing change of stack offsets to out_vals
VLA supports new out_val backend
Change of backend offsets to out_vals and offset types -> long
Move MIN/MAX macros to out/macros.h
Move stack realign to the one files where it's used
Reimplement stack allocation logic (partial fixups)
Remove stack indexing: v_aalloc() -> out_aalloc() + v_to_stack_mem()
Null-out the value on out_adealloc()
Fix decl dealloc
x86_64 call initialises and deallocs arg_stack properly
out_aalloc() takes a type for entry on the stack
Disable stack-reclaim for now
Correct argument/outval types
Args are allocated in prologue, so mark their use as stack-use

(This also marks local use as stack use)
Correctly record no-op stack allocations
Comment stack alloc information