Added offset for register backend types
Logic for offset register addressing
Test file for register offsetting
Register dup() copies offset
lval test
Beginning backend lvalue-vs-rvalue changes
Merge branch 'experimental/float' into optimisation/backend_lvalue

Conflicts:
	src/cc1/out/out.c
	src/cc1/out/vstack.h
	src/cc1/out/x86_64.c
Backend lvalue compilation fixes
Changed flow control in out_op() - one exit
Added lvalue-to-rvalue casts

- Don't decay sub-expressions for struct.member
- __builtin_mem{set,cpy} don't decay their operands either
lvalue and general offset-register tests
Added op-via-memory back in
Restructure of register vs register indexed backend
Volatile register ops (e.g. stack pointer dec.)

Also used for apply a register offset before an op
Enforce order for const-folding backend ops
Normalise offset-registers when copying registers
calc_ptr_step() returns 1 for constant ops with non-pointers
Use a full pointer register if dereferencing it
Fixed over-zealous use of memory references instead of literals
Register dup logic avoids adjusting the base pointer