[WIP] Add logging and DataCollector

WORK IN PROGRESS

Architecture:
* A service tag is added to provider services in the extension.
* A compiler pass is used to replace the provider class with a proxy. For performance, this only happens if the kernel is in debug mode.
* The proxies log certain calls and data to a central LogMaster.
* The DataCollector uses the LogMaster to retrieve and display data in the debug toolbar and panel.
* The LogMaster can be retrieved and used for any other purpose that needs access the logs.

To do:
- [ ] Need a icon for the debug toolbar.
- [x] Finish profiler panel display
- [x] Doc blocks
- [ ] Tests
- [x] General cleanup

... more
I did it that was because of not knowing how data would be dumped as mentioned above with the question of what to change the dump command to. This way if we used it as is, the dump template could easily be overridden to use something like Ladybug Dumper etc.

So I am sure this will change to be something else when we decide how to defaultly dump the data.