Windows 100% CPU usage fix

I've fixed an issue with intended-to-be-blocking calls on Windows being stuck in a polling loop. zmq_poll is now used to block a thread until data becomes available and forkIO + MVar is used to still allow async exceptions to "interrupt" a zmq_poll.