merge the x86 port to master branch
In the arm port of neatcc many changes have been made. The
interface between ncc.c and gen.c has been made a lot simpler.
gen.c no longer handles lhs values (ie. dereferencing the address
to get its value or using its address as in assignments); it
has been transfered to ncc.c. Now implementing things like
bitfields are a lot simpler.
The x86 port has been living on a separate branch for a long
time, but when re-porting neatcc to x86_64, I decided it is
cleaner to merge the x86 port to the master, as this patch does.