Cleanup & perf

@jdeboer could you please check this PR.

This is a rebased and updated version of #975.

I have use [this code](https://gist.github.com/vicb/b939f35d9e118b5d9824) to benchmark the updates:
- [perf(Selector): Optimize regexp matching](https://github.com/vicb/angular.dart/commit/60f00acd10eab0a78a1fe613b8705a33873ad9e4) was actually slower - removed,
- [perf(_ElementSelector): Remove recursion in addDirective](https://github.com/vicb/angular.dart/commit/77173d38833d421778a37ea47425adbf7e987af7) is marginally faster - kept as it is also better memory wise.

I have not executed benchmarks for other perf items, they are trivial cases (removing code or data duplication).

Some discutable changes (remove code without side effect) have also been removed.