WIP: RFC: Generic gpu datasource
This patchset aims to separate out the perfetto specific code in to generic gpu datasource which GPU specific code can inherit. The idea being that it is easier for GPU contributions if the devs don't have to learn perfetto's rather obtuse API.
It will also invert the current design of datasource owning the device. Instead, the device will be a singleton, owning potentially multiple data sources. For etnaviv, I want each pipe to be a separate datasource, with each domain of a pipe being a block of counters. (long term, maybe upstream support for nested perfetto blocks).