Add initial lifecycle and hooks into kubelet.

I think the management system has to give you a quota of time (and if you can't deal with it, you get killed unceremoniously). Otherwise rogue tasks can eat up all our resources. And if there is a quota, it's imperative that we tell the user what it is, so they know what they reasonably have a chance of running. Otherwise you can get nondeterministic behavior with folks' scripts sometimes completing and sometimes not, with no obvious fix. 

There's no question about who is in the driver's seat here. Timeout makes it very clear to the task what is about to happen to it, to let it best use its remaining cycles.