Add screenrecording viewer

This change also needed and includes the refactorings listed below.

Extend viewer's interface to support overlay views:
viewers return a list of views that could have either "tab" or "overlay" type.

Extend TraceViewComponent to render overlay views as well.

Simplify TraceViewComponent's interface for simpler event handling:
receive list of viewers + callback as input instead of entire TraceCoordinator

Test: npm run build:all && npm run test:all
Fix: b/238090772
Change-Id: Iac4c7e66ebe662a76166318d045c2c35e689ef15
23 files changed