Create ZeroMQ Context per socket
Create ZeroMQ Context per socket

ZeroMQ Context is a singleton and thus is created only once. This leads
to problems when there is more than one process working with it.
For example, while Neutron server starts, it firstly loads core
plugin and service plugins, which start message handling server,
and only then forks to create api-workers. As a result, all child
processes get the same copy of the context.

Creating new Context for each socket will prevent such situations
from happening and will guarantee that each process works with its
own Context.

Change-Id: I56912e39b119c20f6f23311fc2c7c4b9e9e480d0
Closes-Bug: #1364814

dims/oslo.messaging,dukhlov/oslo.messaging,dims/oslo.messaging,isyippee/oslo.messaging,zhurongze/oslo.messaging,hkumarmk/oslo.messaging,magic0704/oslo.messaging,hkumarmk/oslo.messaging,ozamiatin/oslo.messaging,apporc/oslo.messaging,zhurongze/oslo.messaging,ozamiatin/oslo.messaging,magic0704/oslo.messaging,stevei101/oslo.messaging,stevei101/oslo.messaging,dukhlov/oslo.messaging,isyippee/oslo.messaging,apporc/oslo.messaging