Make bitshifts work at bitwidth boundaries

Without this fix, new Int64(3) << 64 == Int64(3). This ensures that the result is 0 in such cases.