ui: Relax constraints when checking for optional dataset types
When using Dataset.implements() we currently don't consider types to extend their non-null variants. I.e. NUM does not extend NUM_NULL, despite the fact that it does and should be considered to.
This CL implements the fix and also changes trace processor tracks'
name fields to STR_NULL instead of STR, which avoids an alias and
simplifies the dataset.
E.g.
```
// Now evaluates to true
new SourceDataset({schema: {id: NUM}).implements({id: NUM_NULL})
```
Change-Id: Ib92cf5714827d2141dc0187b3f4b5be63c002d8cPerfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.
See https://perfetto.dev/docs or the /docs/ directory for documentation.