Make the plugin system data-based

I wanted to work over this issue while making plugin system data based.
GSoC 2024 idea list - https://github.com/jupyterlab/team-compass/wiki/GSoC-2024 · GitHub. I will share my thought process here and all the suggestions are welcome.