Add support for "huge" memory model

The new "huge" memory model is for DOS apps.

In it, ints and pointers are 32-bit.

Pointers are simple 32-bit physical addresses (when dereferenced, 12
most significant bits are naturally ignored due to 16-bit segmentation).

This is completely transparent, unless you need to write some assembly
code as part of your program.

This should simplify coding for/porting to DOS.

The stack is still limited to 64KB, however. Local variables are limited
to 32KB within an individual function. Individual functions should not
exceed 32KB in code size. Neither of this should be a problem, normally.