Some work has been done on making the Connection feel nicer, but also
more work is needed to not have the channel be exposed to the upper
layers of the application. We should wrap all the GRPC calls in the
GenServer (which may also allow caching on certain calls such as
get_sys_info)
Dynamically supervise a GRPC connection and keep it alive for a while,
using a timeout to kill the process on inactivity.
The Connection GenServer keeps the connection alive, while listening to
a health stream from the GRPC endpoint, notifying any subscribed
listeners about changes to health.
This health is then propagated to the main servers page.
Also create a looping get_sys_info which retrieves some basic system
information.