STORM-513 check heartbeat from multilang subprocess

Related issue link : https://issues.apache.org/jira/browse/STORM-513

It seems that ShellSpout and ShellBolt doesn't check subprocess, and set heartbeat with their only states.
Subprocess could hang, but it doesn't affect ShellSpout / ShellBolt. It just stops working on tuple.
It's better to check heartbeat from subprocess, and suicide if subprocess stops working.

* Spout
  * ShellSpout sends "next" to subprocess continuously
  * subprocess sends "sync" to ShellSpout when "next" is received
  * so we can treat "sync", or any messages to heartbeat
* Bolt
  * ShellBolt sends tuples to subprocess if it's available
  * so we need to send "heartbeat" tuple
   * subprocess sends "sync" to ShellBolt when "heartbeat" tuple is received
@itaifrenkel Oh, I see. I didn't know that options exists. Thanks for letting me know!
Then we can flip heartbeat flag which means "it's time to send heartbeat" as you state, and let BoltWriter.run() loop takes care of it first.
What do you think?