basics of lexer
untested plist lexer with no module
Changed code to be more testable

I found the Rob Pike approach to be too difficult to test. Testing functions in isolation becomes difficult when their output is sent through produce() and consume() rather than function return values.