Make timeouts work with interact messages

Timeouts were broken with interacts since interacts were sending custom message types, but the timeout infrastructure was just looking for messages of type "execute_request"
An incomplete attempt at launching new kernels when evaluate is pressed (and killing the old kernel).
Ignore messages sent to killed kernels

(this was causing errors when double-clicking Evaluate)