Remove tuples recursively to handle Tuple(Tuple,...) case.

This is necessary because the walker does not guarantee that all Projs
of the second Tuple are visited after we optimized the first Tuple.
Cleanup code.
rename copy_const_value to duplicate_subgraph, remove is_irn_const_expression

also move copy_const_value from typerep/entity to irgmod.
implement NoMem,Sel for duplicate_subgraph
add new_tarval_from_bytes
rework load from known const entity opt

- Previously it was part of load-store optimisations, the rewrite now
works as a localopt.
- The new version works for address arithmetic and not for Sels anymore
  (while the old code only worked for Sels)
- The new version can handle some forms of initializer spanning loads
  like loading a string like "bla" with an mode_Iu to get all 3 chars
  and the zero in one load.
fix bug in sc_val_from_bytes in big_endian mode
Remove overly talkative comments.
Fix typo.
Treat be_MemPerm node as having a frame entity and offset.
sparc: Support MemPerm nodes with sp-relative addressing.