Be explicit about the type and bound we're checking in `BytecodeReader.nextInt32`. (#1859)
Thanks to a heterogeneous comparison operator on `BinaryInteger`, the
expression `someUInt64 < 1 &<< 32` was compiling incorrectly on 32-bit
architectures, because the right-hand side was being inferred as `Int`
instead of `UInt64`. And on a 32-bit system, `1 &<< 32` is zero.
Fixes #1858.