This changes the registers to 16-bit registers in order to solve the
code and data addressing problems in the first revision. Having
registers be address-sized means that we don't need to use register
pairs or segments. Some of these changes open up new encoding space, or
invalidate some previous design decisions. For instance, registers are
16 bits now, so AND/OR/XOR can no longer have a full-size immediate in
one byte. With this, we free up encoding space for other options.
Major additions include a "load upper/lower immediate" instruction.