Implemented constant expression evaluation + code refactoring

a2c_Def() now uses a2c_SimplExp(), to handle constant expressions
rather than just single tokens.

a2c_Def() no longer allows defining new names for labels. (That
just seems nasty - and labels are bad enough as it is...)

Added a2c_Value(), to get the value of a TK_VALUE when no other
token is acceptable.

Some further compiler refactoring, using a2c_Get*() instead of
messing directly with the lexer state.

Fixed old bug in the KILL statement; instruction was encoded with
0 for a1 and an ignored bogus token value in a2...

Added VM division by zero check in the QUANTR instruction.

Added compiler division by zero check for the QUANT instruction.

Removed bogus KW_NOT from a2c_Expression(), as it's not supposed
to evaluate unary operations.

a2c_Expression() delays allocation of a temporary result register
until right before code generation, which happens after checking
if the current operation can be evaluated at compile time. Thus,
the result can now remain a TK_VALUE throughout the evaluation of
an expression.

A2_lexstate renamed to the more appropriate A2_lexvalue, and the
buffer size can now be changed at compile time if we should need
that for more complex language constructs later. (Bumped to 3 for
now, to generate nicer error messages if things go wrong right
after an unlex.) The values are now found in the array l[] in
A2_compiler, where l[0] is the current value.

Various calls now take raw A2_lexstate pointer arguments instead
of buffer indices, to allow greater flexibility. (Expression
parsing needs to save lexvalues locally when making recursive
parser rule calls.)

Symbols that are created by the lexer are now marked with a flag
that is removed if these symbols are added to a symbol table,
with internal error checking for trying to re-add symbols that
already belong to a symbol table.

Compile error messages now show both start and end positions.

Compile error message column indications now handle tabs
correctly.

Added A2_PTABSIZE for those who believe tabs are not 8 chars.

Compile error messages now come with source code line dumps!

The register allocator now handles out-of-order deallocations.

Closes #97.