Add notes for chapter 12 of nand2tetris.

books/nand2tetris/notes/12_operating_system.md
	-Add notes for chapter 12, "Operating System", of nand2tetris,
	detailing some of the algorithms (for multiplication, square
	roots) covered.
Add half-completed Math library.

books/nand2tetris/projects/12_operating_system/Math.jack
	-Add a half-finished Math library, which correctly implements
	multiplication and division. `min()`, `max()`, and `abs()` are
	untested.
Add documentation comments to Math.jack.

books/nand2tetris/projects/12_operating_system/Math.jack
	-Document all functions implemented thus far.
Implement Math.sqrt(), complete Math lib.

books/nand2tetris/projects/12_operating_system/Math.jack
	-Implement `sqrt()` and test it alongside the rest of the Math
	library, thereby completing it.
Add the skeleton String library.

books/nand2tetris/projects/12_operating_system/String.jack
	-Add a skeleton file for the String standard library, as
	provided by nand2tetris.
Implement and test the String standard library.

books/nand2tetris/projects/12_operating_system/String.jack
	-Implement the String standard library, and test it against the
	tests supplied by nand2tetris.
Reformat String.jack comments.

books/nand2tetris/projects/12_operating_system/String.jack
	-Reformat existing documentation comments to comply with the
	style used elsewhere.
Add skeleton Array library.

books/nand2tetris/projects/12_operating_system/Array.jack
	-Add the skeleton Array standard library, as provided by
	nand2tetris.
Implement and test the Array standard library.

books/nand2tetris/projects/12_operating_system/Array.jack
	-Complete the Array standard library, implementing and testing
	`new()` and `dispose()`.
Add skeleton Output file.

books/nand2tetris/projects/12_operating_system/Output.jack
	-Add the skeleton Output standard library file provided by
	nand2tetris.
Implement moveCursor() and printChar().

books/nand2tetris/projects/12_operating_system/Output.jack
	-Implement and partially test `moveCursor()` and `printChar()`,
	which will serve as the building blocks of most other functions.
Implement printString()/printInt(), fix printChar().

books/nand2tetris/projects/12_operating_system/Output.jack
	-Implement `printString()` and `printInt()`, and fix a bug in
	`printChar()` which caused characters written to the same word
	in the screen's memory map to overlap due to the fact that they
	weren't being shifted when appropriate.
Fix some formatting in Output.jack, def backSpace().

books/nand2tetris/projects/12_operating_system/Output.jack
	-Implement `backSpace()`
	-Rewrite some multi-line documentation
	comments written with single line comment delimiters (`//`)
	using the multi-line comment delimiters `/*` and `*/`.
Add skeleton Screen standard library file.

books/nand2tetris/projects/12_operating_system/Screen.jack
	-Add the skeleton file for the Screen standard library, as
	provided by nand2tetris.
Implement Screen.drawPixel().

books/nand2tetris/projects/12_operating_system/Screen.jack
	-Implement the `drawPixel()` function, which will serve as the
	building block of the Screen standard library's other functions.
Implement drawLine().

books/nand2tetris/projects/12_operating_system/Screen.jack
	-Implement `drawLine()` using an optimized Bresenham algorithm.
Implement drawRectangle() and drawCircle().

books/nand2tetris/projects/12_operating_system/Screen.jack
	-Implement the remaining Screen functions, `drawRectangle()` and
	`drawPixel()`, and complete the Screen standard library.
Add the implemented Keyboard standard library.

books/nand2tetris/projects/12_operating_system/Keyboard.jack
	-Add a complete, tested implementation of the Keyboard standard
	library.
Add skeleton Sys standard library.

books/nand2tetris/projects/12_operating_system/Sys.jack
	-Add the skeleton file for the Sys standard library as provided
	by nand2tetris.
Implement the Memory standard library.

books/nand2tetris/projects/12_operating_system/Memory.jack
	-Add an implementation of the Memory standard library.