refactor: move the profiling code out of Injector

Remove `this.id` from `Injector`.

This code is only used when debugging is on. It serializes every
injector into a global array that other tools (such as visualizer chrome
extension) can consume.
feat(visualizer): wrap it into a chrome extension

Update the visualizer app to consume new serialization format (now anything can be a token and so we use serialized ids).

Clicking an injector or provider will inspect given object in console.

Handle multiple root injectors.