Assembler can be created with lines or a file name

Adding the ability to create an Assembler given an array of lines makes
testing easier, because we can do "acceptance-like" testing without
starting a separate process.
Remove option to cerate Assembler with lines

Because the Assembler calls exit on AsmError, using
Assembler.new([line]) is not a good approach for testing errors.
Instead I will use the Directives.handle, PseudoInstructions.handle and
Instructions.handle methods directly for quick error testing.
Update to-do list
Use ' instead of " in symbols
Begin writing failing directive specs