Local optimizations: Use De Morgan's laws.

~(~a &  b) =>  a | ~b.
~( a & ~b) => ~a |  b.
~(~a |  b) =>  a & ~b.
~( a | ~b) => ~a &  b.
Make local optimization independent of signedness.
Removed redundant local optimizations.

This case is already handled in equivalent_node_And.
Factor out common node creation and added debug stuff.
Added local optimization: -a & 1 => a & 1.
Optimization only works for two's complement modes.
irgraph: Assert, that set_current_ir_graph() is only used with a graph with IR_GRAPH_CONSTRAINT_CONSTRUCTION.
irdump: Remove nop-cast.
callgraph: Remove redundant if (x) before free(x).
irprog: Add and use foreach_irp_irg{,_r}().
irprofile: Cleanup.
ircons: Cleanup.
iropt: Remove redundant is_Or_Eor_Add(x) before is_Eor_Add(x).

is_Or_Eor_Add(x) is the first test in is_Eor_Add(x).