Large changes. Mostly changed how opcodes are parsed and encoded.
Changes made to support ISA encoding in one file, so both the assembler
and cpu simulation can access the same data.
Renamed tokens.py to isa.py
isa.encode() now supports writing data.
Fixed macros/directives.
Better decoding of opcodes.
Simplified CPU simulation.