Use ZeroMQ 2.x, because newer versions don't work with IPython
Add support for message metadata serialization
Serialize empty header as empty JSON object
Send idle status after executing request
Implement remaining send_*() functions
Implement serialization of user_expressions
Deserialize optional parent_header
Increment execution counter