Rewrite the assembler.

Add a full parser, in src/parser.lisp, which handles comments, labels,
compile-tile expressions, decimal literals, and all the features of the
previous assembler. The new assembler uses a different intermediary format,
described in src/assemble.lisp, which removes the need to use special
characters in operands to specify addressing modes.

Add enviroments to the assembler so that labels can be used. Forward labels
are implemented using delayed functions while assembling. An initial
environment can be passed to the assembler as a hash table.

Operands can be decimal literals in addition to hexidecimal literals.
Compile-tile expressions can also be used, by adding a literal to a label.
Branches to absolute addresses will be assembled as zero-page if possible.
Cleaner implementation of new parser.

Add instruction struct for intermediary format created by parser. Use regexes from addressing.lisp in the parser, simplying how address modes are determined. Modify said regexes to use underscore (_) where the actual value occurs, defaddress macro replaces this with a valid regex and parser continues doing the work of actual parsing. Add markdown file for parser and update old markdown files.
Merge pull request #11 from dustmop/assembler-rewrite

Enhanced assembler with labels and compile-time expressions.