[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
If you get the logs and manipulate them you can then inject them back afterward. For instance if you wanted to run through the logs and check for something and then add or change something accordingly. It allows anyone to be able to integrate with the logs including custom provider bundles etc.