We add intermediate calculations in int128_t when target is UBIGINT and check for overflow before converting into the UBIGINT. This is so because we can overflow on addition and multiplication, with (some) signed operands or both unsigned.