Daemonize threads (heartbeat, event loops, zmq IO, etc.)

We don't have direct control over zmq IO threads, so we can't simply
use setDaemon(true). Instead, one more daemon thread is created which
initializes IScala, creates zmq context (starts IO threads), starts
event loops and heartbeat. All threads started in a daemon thread are
daemons by default.