Introduce union for holding smallint in P6bigint.

Not using the smallint part yet.
Teach a few things to handle smallint case.

We never actually create that case yet, so really we can only test the
checking code doesn't get false positives so far.