Properly handle the "internal" linkage type in the bitcode.
Add --external flag to suppress "internal" linkage type, for testing.
Fix a number of correctness issues.

Use the Intel movsx/movzx syntax.

Use the 16-bit and 8-bit register names for movsx/movzx.

Restrict the register allocator to use only the 4 allowed 8-bit
registers for i8 types.

Fix incorrect epilog code, which involved a local variable declaration
hiding a class field.

Fix the branch conditions for 64-bit icmp, which were inverted for
signed/unsigned.

Fix the icmp ne i64 sequence.

Fix all the lit tests that were previously wrong.

All these problems were discovered while developing an A/B unit
execution test framework.