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
`Parser` is a service and it is stateless.  `_ParseAST` is an operation, not a service. It is a way to avoid passing `index` and `tokens` to every method and return `index` from every method. It can be inlined, but I think the code will be harder to understand.