Server: Allow server shutdown via termination signal
The currently used mechanism to keep a SiLA Server running is Utils.blockUntilStop(). This method runs a while (true) loop and stops when the line "stop" is sent to the standard input of the process. Additionally, Utils.blockUntilStop() does not take care of graceful server shutdown, so
The official gRPC Java examples use a different mechanism, which blocks the process until the gRPC server is shut down, and adds a shutdown hook so that the gRPC server is shut down when the process receives the termination signal.
That method does not require a reference to the process stdin (which is hard to get for detached processes or Docker environments), and instead reacts to the typical process termination signal (sent by kill, docker stop, ...).
Since the io.grpc.Server is a private field in the SiLAServer class, users currently can not make use of this mechanism and need to use another way to block the server if using stdin is not an option.