refactoring(parser): adds a test checking redistribution when shadow dom changes
refactoring(parser): adds a test checking that nested components work
refactoring(parser): adds tests for directive injector
refactoring(parser): rewrite the select engine
refactoring(parser): adds tests for redistibuteNodes