[stdlib] Int128: Fix Words; simplify/tweak some operations
[stdlib] Int128: Fix Words; simplify/tweak some operations

`Words.Iterator.next()` used to call `Int128(truncatingIfNeeded:)`, which in turn iterates over words, leading to an infinite recursion.

Implement half-width multiplication from scratch instead of masking off the full width results.

glessard/swift,gregomni/swift,roambotics/swift,benlangmuir/swift,apple/swift,ahoppen/swift,benlangmuir/swift,atrick/swift,rudkx/swift,benlangmuir/swift,JGiola/swift,apple/swift,gregomni/swift,ahoppen/swift,roambotics/swift,JGiola/swift,atrick/swift,JGiola/swift,glessard/swift,apple/swift,rudkx/swift,ahoppen/swift,JGiola/swift,gregomni/swift,benlangmuir/swift,apple/swift,ahoppen/swift,rudkx/swift,rudkx/swift,atrick/swift,gregomni/swift,atrick/swift,glessard/swift,benlangmuir/swift,benlangmuir/swift,JGiola/swift,JGiola/swift,glessard/swift,glessard/swift,apple/swift,rudkx/swift,roambotics/swift,gregomni/swift,atrick/swift,glessard/swift,apple/swift,atrick/swift,roambotics/swift,gregomni/swift,ahoppen/swift,ahoppen/swift,roambotics/swift,roambotics/swift,rudkx/swift