Add OnTermSync for hooks that we should wait for before dying.

Previously, the lameduck period specified both the minimum and maximum
wait duration. We need a way for certain hooks to specify that they are
important enough to wait for even after lameduck expires. The lameduck
period effectively now specifies the minimum wait time, while the new
onterm_timeout specifies the maximum.
Upgrade shard rebuild to OnTermSync to give it more time.

Removing ourselves from the serving graph when going down gracefully is
important enough to extend lameduck beyond the minimum specified by the
-lameduck-period flag.
Merge pull request #139 from youtube/onterm

Add OnTermSync for hooks that we should wait for before dying.