add core.checkedint

There's been a lot of interest, both in D and other languages, in detecting integer arithmetic overflows. Because of performance and other issues, it is unlikely such checking will be added to the core D integral types.

This adds primitives which can be used to do checked integral operations, i.e. operations that check for overflow.

A checked integer type would be a Phobos library type that builds on these primitives.
Pedantically, yes, but I wanted to be consistent in using 'overflow' meaning 'result is not representable'.