don't store UntypedInt with 4-bit APInt values

Integer 8 is represent as b1000 in a 4-bit APInt manner.
Later, when we translate this APInt value into a const using
APInt.sextOrTrunc, we get b11111000 back, which is not what
we want. The bad intepretation only occurs when
we infer the type of an integer, i.e., an integer without :iN.
Note that b11111000 is unsigned char 248, which is why we see
instruction "%8:i1 = eq 248:i8, %0" in John's example.

The fix is to use multiple of 5. It should always be safe.
Also, we won't increase too much memory usage because
it's only for parsing replacements, which are small.
Unless I missed something, we can't simply include the test into RoundTrip category. The input is "%4:i1= eq 8, %0 ", and the output is "%4 = eq 8:i8, %0". The bug occured when we inferred the width of "8", so we can't add :i8 to it. On the other hand, i8 was printed out by our Inst printer. This is way I explicitly added one more test here.