In B.xs use I16 to avoid an "initializer will be sign-extended" warning.

The Solaris C compiler warns 30 times that -1 will be sign-extended, when
it is assigned to a struct member of type size_t. Instead, use I16 (No offset
will actually be larger than 1024), and reduce the size of the types used for
other structure members.

Change SVp (etc) to be constants in the range 0x0 to 0x7, instead of 0x00000
to 0x70000, now that most use cases no longer involve to or-ing with other
values. This makes two switch statements simpler.

As well as quietening warnings, the combined changes reduce the object size
by about 800 bytes on x86_64.
Change all B's unsigned constants from IVs to UVs.

Apart from HEf_SVKEY, all constants are actually unsigned, so this change
avoids 2 warnings "initializer does not fit or is out of range" from the
Solaris C compiler for the two constants with the value 0x80000000
Re-indent a switch statement in B::OP::next

This is the whitespace-only part of the next commit separated out.
In B::OP::next, flag special cases with a type, instead of an offset of -1.

This permits the offset structure member to be unsigned instead of signed,
which feels more natural. The refactoring also reduces code size by about
100 bytes on x86_64.
Merge the refactoring of B which silences Solaris compiler warnings.