get/set_identity restrictions

It seems you should be able to at least set_identity on a `Dealer socket and probably `Sub.

This is done in IPython which won't work without it.

Note also, I changed to 'a rather than my specific requirements of adding `Dealer and `Sub as I could not get the code with these restricted phantom types to actually compile (the function seems to generalize the socket type which I was storing as a [`Dealer] in a record).