refactor(perf): use webdriver to execute benchmarks

- use performance log of chromedriver / appium to get timeline data
  for calculating metrics for benchmarks
- change all benchmarks to be made of a standalone application
  and a protractor test that collectes timeline data
- fix and simplify benchmarks
- add dart2js to build
- remove benchpress

Closes #330
feat(view): add support for components that use shadow dom emulation
cleanup(core): fix dart analyzer warnings
feat(transpiler): implement @IMPLEMENTS
feat(test_lib): implement SpyObject