fix Issue 13025 - Tools repository does not build on Ubuntu

- reference __bss_start and _end using weak symbols
  to workaround a diagnostic linker bug
Fix issue 12958 - core.checkedint.mulu is broken.

This implements the (uint, uint) case using ulong arithmetic
and the (ulong, ulong) case using trial division. See Bugzilla
for an ulong implementation by David Bregman that does not
require a division. As the functions are expected to be
implemented as compiler intrinsics to make use of
architecture-specific primitives anyway, the simpler version
has been chosen to reduce the potential for bugs, even though
it is slower.
Merge pull request #889 from MartinNowak/fix13025

fix Issue 13025 - Tools repository does not build on Ubuntu
Merge pull request #890 from klickverbot/fix-checkedint-umul

Fix issue 12958 - core.checkedint.mulu is broken.