Fix asset overflow checks; log exceptions during wallet scanning

The overflow checks in asset addition and subtraction were invalid,
causing false positives (errors when no overflow had occurred) and false
negatives (it is impossible to safely detect a signed overflow after the
fact). These checks have now been replaced with precondition checks,
which determine whether an overflow will occur without ever actually
causing one.

Also, add logging of exceptions during wallet scanning (which is how I
detected the bad overflow checks in the first place)