Fixed issue in earlier quoted comma fix

A previous fix changed "," to (44) to avoid issues with other comma
processing. Normally this would be a safe equivalent, but has the
unfortunate side-effect of changing LD A,"," to LD A,(44) which is
a different instruction to the expected LD A,44.

Changing the parentheses to spaces keeps the same approach, and the
token separation in expressions, but without the side-effect.
Added ALIGN as its own directive

DEFS ALIGN still works as before.

We also enforce the alignment value being a power of 2.
Reject additional invalid LD operand combinations

Added cases to match:

LD (HL/IX[+d]/IY[+d]), IXl/IXh/IYl/IYh

and

LD IXl/IXh/IYl/IYh, (HL/IX[+d]/IY[+d])
Fixed double fatal() message output on errors

sys.exit() raises a SystemExit exception, which was caught by the opcode
execution handler as an error, generating a second fatal error message.