Implement __umulh with __int128 arithmetic

Use the same approach as _umul128, but just return the high half.