(dagit-reload-2/n) gRPC server watch thread
Summary: This diff introduces a utility function to create a thread that tracks the state of a running gRPC server. This utility function will eventually be used by the DagsterGraphqlContext in order to appropriately reload handles and inform the Dagit front-end client of updates.
Test Plan: unit tests to check that the correct callback functions are called in all the possible server lifecycles
Reviewers: alangenfeld, dgibson
Reviewed By: dgibson
Differential Revision: https://dagster.phacility.com/D5106