Add types for lifecycle events.

So do we have a consensus that we should change back to a single PreStop lifecycle handler?

Tim and I had an off-thread discussion and agreed that we don't need to pass the time to the handler, at least for now. We will want to pass the reason (not in this PR, I realize). I predict that users will want to be able to (optionally) bypass the default timeout period, but we can add that later.