Add initial lifecycle and hooks into kubelet.

This is a different "err" than the one used to return the result of StartContainer? If so, that's confusing. OTOH, it seems like we should convey failure of a hook to the user somehow. What use cases do we imagine for PostStart hooks? Registration with external discovery mechanisms (e.g., worker registration)? If this were a PreStart hook, which might be used to initialize data in the container, I'd abort starting the container on hook failure, or at least provide the option to do that. (Which I suppose implies we'd need the user to request the hook in the API.)