kerneis Rewrite arithmetic conversions from scratch
We follow the text of the standard closely (6.3.1.8) instead of trying
to outsmart it. This fixes in particular conversion for unsigned long
and signed long long when sizeof(long) == sizeof(long long).
Latest commit 0ca695d Sep 13, 2013