nand2tetris chapter 6: add notes.

books/nand2tetris/notes/6_assembler.md
	-Add very brief notes on chapter 6.
nand2tetris proj 6: Bootstrap assembler python pkg.

books/nand2tetris/projects/6_assembler/assembler/
(__init__, __main__, assemble).py
	-Bootstrap the `assembler` package, adding some rough structure.
Def assembler.assemble_code().

books/nand2tetris/projects/6_assembler/assembler/assemble.py
	-Define `assemble_code()`, which contains the assembler's core
	logic and aggregates all of its other components.
	-Currently contains calls to inexistent modules.
Add an instruction module.

books/nand2tetris/projects/6_assembler/assembler/instruction.py
	-Add an instruction module, which handles instruction parsing
	and encoding.
	-Define a `parse_instruction()` function, and two classes:
	`AInstr`, and `CInstr` (the two instruction types supported by
	the Hack language).
Add a prototype symbol_table module.

books/nand2tetris/projects/6_assembler/assembler/symbol_table.py
	-Add a module to maintain the assembler's symbol table.
	-Contains a `SymbolTable` class, which implements most of its
	required functionality with several methods (`add_variable()`,
	`add_label()`, etc.).
Add a general-purpose parsing module.

books/nand2tetris/projects/6_assembler/assembler/parser.py
	-Add a module that contains various helpful parsing functions.
	-Contains `clean()`, `parse_label()`.
Redef CInstr.from_string(). Def AInstr.to_binary().

books/nand2tetris/projects/6_assembler/assembler/instruction.py
	-`CInstr.from_string()` was mis-implemented, not accounting for
	statements that have *both* a `dest` and `jump`. Redefine.
	-Implement `AInstr.to_binary()`.
Implement CInstr.to_binary().

books/nand2tetris/projects/6_assembler/assembler/instruction.py
	-Implement `CInstr.to_binary()`; all binary-compilation
	functions are now defined.
Add built-in variables to symbol_table.

books/nand2tetris/projects/6_assembler/assembler/symbol_table.py
	-Prepopulate `SymbolTable.table` with the variables the
	Assembler provides by default.
	-Fix a bug in `add_variable()`, which wouldn't return the value
	of an existing variable.
Write assembled output to a file.

books/nand2tetris/projects/6_assembler/assembler/__main__.py
	-Write the assembled instructions to a file with a basename
	identical to that of the input file.
Fix project 4 Fill.asm bugs.

books/nand2tetris/projects/4_machine_language/Fill.asm
	-Fix a bug in `Fill.asm`, completed for project 4
	(0342eb6), which prevented the screen from getting cleared
	(overlooked in refactoring).
Support swapped operands in C instructions.

books/nand2tetris/projects/6_assembler/assembler/instruction.py
	-Modify `CInstr.to_binary()`, automating the process of adding
	any operations on the `A` register by simply taking the `M`
	register equivalent, replacing `M` with `A`, and modifying the
	`a` bit.
	-Add support for swapped operands in addition operations (eg,
	`D + M` and not only `M + D`).

books/nand2tetris/projects/6_assembler/assembler/parser.py
Document the __main__ module.

books/nand2tetris/projects/6_assembler/
	-Add a docstring to `handle_user_args()`, and the module header.
Document the assembler module.

books/nand2tetris/projects/6_assembler/assembler/assemble.py
	-Add docstrings to the module header and `assemble_code()`.
Begin documenting the instruction module.

books/nand2tetris/projects/6_assembler/assembler/instruction.py
	-Add docstrings to the module header, and all methods of
	`AInstr`.
Complete instruction module documentation.

books/nand2tetris/projects/6_assembler/assembler/instruction.py
	-Finish documenting the `instruction` module.
Documenth the parser module.

books/nand2tetris/projects/6_assembler/assembler/parser.py
	-Add a docstring to the module header, `clean()`, and
	`parse_label()`.
Document the symbol_table module.

books/nand2tetris/projects/6_assembler/assembler/symbol_table.py
	-Add a header documentation comment, and docstrings to all
	`SymbolTable` methods.
Fix pylint warnings.

books/nand2tetris/projects/6_assembler/assembler/
(__init__, instruction, parser).py
	-Fix several pylint warnings (non-raw strings with escaped
	parentheses passed to `re.match()`, leftover `TODO`, etc).
Add a README to the assembler project.

books/nand2tetris/projects/6_assembler/README.md
	-Describe the contents of the project, and demonstrate sample
	command-line usage.