Allow any type of compound-assign upcast

e.g. <char>++ was failing because we do the increment using
int-sized arithmetic.
Moved fixed char-increment bug
Move _Bool normalisation logic to the generic backend
_Bool increment/decrement tests