Soft slave shutdown on terminate message from slave

Currently, when `terminate` message gets received by engine, slave is immediately terminated. This patch suggests soft termination on `terminate` message from slave: it is put into shutting-down state, not accounted as active, thus it doesn't receive new requests, and it's given termination_timeout time to process any pending left sessions, after which time slave is being terminated in usual fashion.
N.B.: pull request for discussion only, looks like there would be more efficient way to implement this feature.