Fixed issue with sign extension with I type

Fixed issue with sign extension on immediate of I type instructions when
converting from short to int.

Before this fix the instruction "movi r8, 0xFFFF" ("addi r8, r0, 0xFFFF") would result is r8 = 0xFFFFFFFF. This was due to sign-extension when converting the immediate from a short to an int. This was fixed by always storing the immediate as an int.