Add the ShutdownInitiated callback to Server

The ShutdownInitiated callback is called at the beginning of the shutdown process and is useful for logging the shutdown action.
Hmm. I see. I didn't actually code that and must have missed it. I don't particularly like that style, as the comment on the member itself describes what it is for. Let's just do something like:

```go
if srv.ShutdownInitiated != nil {
  srv.ShutdownInitiated()
}
```