Feat: live update for Services dashboard widget
I noticed that the Services dashboard widget did not live-update as services are modified. If a service dies or is stopped by another admin or another session, the dashboard won't reflect that unless you manually reload the page. Also, there were some other annoyances, like clicking the service control icons causing a full page reload, jumping to the top of the screen etc. I spent some time reworking a few things and made what I think are some good QoL changes.
- live refresh in the Services dashboard widget (adopted Centralized widget refresh system)
- added mutex to lock out stop/start/reload buttons when an action is underway to avoid hysteresis
- actions called from dashboard widget no longer cause the page to "jump" to the top, nor do they require the dashboard to do a full reload (so your graphs etc stay put)
- reworked the way the jQuery selectors are stored and parsed, in what I believe to be a more robust way
- fixed some bugs related to having multiple instances of the Services widget
No data to display