Create doz only for <, <=, >= and >.

This fixes opt/fehler240.c.
Add first version of a store combination transformation
iropt: normalize (x+c1)*c2 => x*c2 + (c1*c2)
opt_osr: bail out if increment overflows

We should continue here as this is probably just an unsigned loop going
backwards (firm normalizes -1 to +0xFFFFFFFF on unsigned modes). How to
fix this properly is left as an exercise for the next developer :)
opt_osr: cleanup, use C99
amd64: Refactored zero extension functionality
let backends announce whether they support unaligned memaccesses

This also disables the memcombine optimisation if unaligned stores are
not supported by the backend.
We may add some tests in the future to reenable this in cases where we
can prove that the combined store is aligned.
bespillslots: cleanup, use C99
ia32: construct spill/reload directly instead of using be_Spill/be_Reload

this also required a rewrite of the perform_memory_operand logic which
should be cleaner now.