Add ability to set Differential Services Code Point socket option

I'd like to add a capability to ZMQ allowing users to set the DSCP IP field on sockets which would allow the sockets to be allocated into Type-of-Service QoS groups within a network.

I have added the functionality (where I think it should go, though I'm far from knowledgable about libzmq internals) and a test. The test passes and I have verified that the packets do indeed use the DSCP settings by viewing them using wireshark. 

One area of concern may be that the pgm socket already hard codes the DSCP field in a PGM specific way. At some point in the future it may be useful (from a code maintenance point of view) to consolidate the two methods. Though for now I think it is OK as the whole PGM socket code is fairly specific.

I'm new to submitting a change to libzmq so I'm not sure if I've covered everything off. Am I on the right track?