feat(expression_extractor): implemented expression extractor

- Implemented static expression extractor library and command line tool.
- Added exportExpressions/exportExpressionAttrs to NgComponent/NgDirective annotations.
feat(parser): Throw NoSuchMethod in getter.  Remove try/catch in setter.
feat(parser): ParserBackend and a new library
feat(parser_generator): A parser generator
chore(relaxFnApply): More relaxFnApply to a seperate library
chore(parser): Move files into lib/parser
chore(parser_generator): Break up the parser_generator into seperate files
chore(block): Move Block linking code into BlockFactory

The linking of Block to directives used to be in the Block
constructor. This made the constructor dependent on many complex
objects and did work in constructor. By moving the linking
function into BlockFactory it is more logically grouped with
the actual code and it removes complex objects from the Block
constructor dependencies making Block a PoJo.
fix(block): Remove support for nodeAttrs[this]

This code is no longer needed since directives
now have mappings which can be used for the same
thing.

Closes #87