Add a localopt for shift after And.

If a mode has modulo_shift != 0, we can discard explicit modulo operations
(usually expressed as And), if they leave all bits relevant to the shift
operation untouched.
Consider modulo_shift in the DCA.

If a mode has modulo_shift == 2**n, we only care about the n least
significant bits of the shift amount.
cleanup/fix shift(x, y & modulo_shift_mask) opt

- Do not use predefined mode_Iu, it's not necessary the frontends
  unsigned mode!
- tarvals are identified in a hashmap, we can compare their pointers for
  equality
- modulo_shift is an unsigned value, not an int
use get_mode_XXX() instead of get_tarval_XXX()
remove get_tarval_XXX() functions

Initialize mode values directly. This is to avoid users using
get_tarval_XXX() instead of get_mode_XXX() which is always preferable.
remove get_mode_minus_one() there is still get_mode_all_one() for two complement modes
also cleanup/fix modulo_shift dca commit

- modulo_shift is an unsigned value
- do not hardcode builtin mode_Iu, it may not be the correct mode
- avoid potentially huge values in new_tarval_from_long
fix unittests for missing get_mode_minus_one, fix bad max initialisation for float modes