extend With Leading Zeros
Extends the given 32-bits value to a new 64-bits one with zeroes.
We should use this function instead of Int.toLong to avoid moving size bit from its place.
It is important in situations when we want to create a bitvector from (-1) -- it is 32 ones in binary representation. Then we want to extend it to 64 bits, but Int.toLong will move sign one into the first place in a new value, therefore we will have not a value of 32 zeros following by 32 ones, but 100...0011..11, that will change the value of the bitvector we wanted to construct.