feat(Parser): implement Parser

Add a simple parser implementation that supports only field reads.

@vicb @chirayuk @mhevery could one of you guys take a look?

WIP
Why do we need both Lexer and Scanner? I think Scanner is sufficient. This Lexer creates a list of all tokens in an array, but the Parser needs them one by one anyways, so I think Lexer is unnecessary. Parser can use Scanner directly.