Add types for lifecycle events.

What IS lifecycle-specific is whether hook failure should trigger container/pod failure. For instance, if someone were going to use a PreStart hook to do some kind of initialization of a shared volume, they might want the hook failure to trigger pod failure.

The most flexible option is also the easiest to implement: no, hook failure should not (automatically) cause pod failure.