nand2tetris project 7: add notes.

books/nand2tetris/notes/7_virtual_machine_i_stack_arithmetic.md
	-Add notes for chapter 7, "Virtual Machine I: Stack Arithmetic",
	of nand2tetris.
Bootstrap vmtranslator python package.

books/nand2tetris/projects/7_virtual_machine_1_stack_arithmetic/
(README.md, vmtranslator/(__init__, translator.py))
	-Bootstrap the vmtranslator Python package, which will implement
	the first portion of the *Hack* virtual machine.
	-Add placeholder files.
Flesh out the translator module. Def translate().

books/nand2tetris/projects/7_virtual_machine_1_stack_arithmetic/
vmtranslator/translator.py
	-Define `translate()`, which relies on as-of-yet unimplemented
	methods in the package's other modules. Simply aggregates them
	at a high level of abstraction.
	-Add a docstring to the module header.
Add __main__.py, main entry pt for CLI exec.

books/nand2tetris/projects/7_virtual_machine_1_stack_arithmetic/
vmtranslator/__main__.py
	-Add the main entry point for command-line execution of the
	`vmtranslator` package.
	-Define `translate_file()`, and add docstring to module header.
Add operation module, def Operation/BinaryOp.

books/nand2tetris/projects/7_virtual_machine_1_stack_arithmetic/
vmtranslator/operation.py
	-Add the `operation` module, which will contain classes and
	functions for dealing with all VM arithmetic/logic operations.
	-Define the `Operation` abstract base class, and `BinaryOp`;
	thoroughly document each.
	-Add docstring to module header.
Define UnaryOp and LogicOp classes.

books/nand2tetris/projects/7_virtual_machine_1_stack_arithmetic/
vmtranslator/operation.py
	-Define and document the `UnaryOp` and `BinaryOp` classes,
	effectively completing the `operation` module.
Rewrite some operation class docstrings.

books/nand2tetris/projects/7_virtual_machine_1_stack_arithmetic/
vmtranslator/operation.py
	-Move most classes' docstring's `Attributes` section to the
	`Args` section of a docstring in their `__init__()` methods.
Add operations sub-package.

vmtranslator/
(operation.py -> operations/(__init__, arithmetic_logic, operation).py)
	-Convert the `operation` module to an `operations` sub-package.
	-Break it up into an `operations.operation` module, which
	contains the base `Operation` class, and
	`operations.arithmetic_logic`, which contains all
	arithmetic/logic classes (`BinaryOp`, `UnaryOp`, etc).
Define LogicOp.from_string().

vmtranslator/operations/arithmetic_logic.py
	-Define `LogicOp.from_string()`, which was mistakenly left
	unimplemented, because `LogicOp` has a different constructor
	from `BinaryOp` and `UnaryOp`.
Add memory module w/ MemoryOp, PushOp.

books/nand2tetris/projects/7_virtual_machine_1_stack_arithmetic/vmtranslator/operations/memory.py
	-Add a `memory` module, with `MemoryOp` and `PushOp` classes.
Define PopOp in the memory module.

vmtranslator/operations/memory.py
	-Define and document a `PushOp` class.
Debug arithmetic/memory assembly translations.

vmtranslator/operations/(arithmetic_logic, memory).py
	-Various operation classes' `to_assembly()` functions had
	incorrect assembly instructions; fix and run against the
	nand2tetris unit-testing scripts.
Debug memory.PopOp assembly translation.

vmtranslator/operations/memory.py
	-Debug `memory.PopOp.to_assembly()`, using the unit-tests
	scripts provided by nand2tetris.
Add a general-purpose parser module.

vmtranslator/parser.py
	-Add a module that exports functions for general parsing tasks.
	-Contains tested, but undocumented, functions `clean_code()` and
	`parse_line()`.
Merge branch 'books/nand2tetris.7_vm_I_stack_arithmetic' into books/nand2tetris

books/nand2tetris/(notes/7_virtual_machine_i_stack_arithmetic.md,
projects/7_virtual_machine_1_stack_arithmetic/)
	-Complete chapter 7, "Virtual Machine I: Stack Arithmetic".