Add initial lifecycle and hooks into kubelet.

Names changed.  I would like to leave them as blocking indefinitely.  I think that these need to be true lifecycle events, not notifications.  The call needs to return before management can proceed.

(I agree that practically we probably need a timeout, or other guarantees to "kill things that are not responding" but I'd like to start out of the gate with the right model, and then add the safety valve later)

I don't want development of lifecycle to proceed assuming that communication is one way from kubelet to container.