Add an optional server shutdown event.

Allows servers to expedite shutdown once all in-progress calls are
completed. We may want to eventually remove grpc_server_shutdown in
preference to this.
diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h
index 40a3d2a..3c5b0de 100644
--- a/include/grpc/grpc.h
+++ b/include/grpc/grpc.h
@@ -194,6 +194,7 @@
   GRPC_FINISHED,             /* An RPC has finished. The event contains status.
                                 On the server this will be OK or Cancelled. */
   GRPC_SERVER_RPC_NEW,       /* A new RPC has arrived at the server */
+  GRPC_SERVER_SHUTDOWN,      /* The server has finished shutting down */
   GRPC_COMPLETION_DO_NOT_USE /* must be last, forces users to include
                                 a default: case */
 } grpc_completion_type;
@@ -439,6 +440,10 @@
    Existing calls will be allowed to complete. */
 void grpc_server_shutdown(grpc_server *server);
 
+/* As per grpc_server_shutdown, but send a GRPC_SERVER_SHUTDOWN event when
+   there are no more calls being serviced. */
+void grpc_server_shutdown_and_notify(grpc_server *server, void *tag);
+
 /* Destroy a server.
    Forcefully cancels all existing calls. */
 void grpc_server_destroy(grpc_server *server);