Fixed LIBZMQ-556: ROUTER socket does not support reconnection from clients with multiple NICs

My proposed fix for LIBZMQ-556, where the router will re-assign the identity when it encounters a name collision (as discussed on zeromq-dev mailing list, in the summer). 

This behaviour is optional, with a new socket option to enable it. 

If this fix looks good, I can submit test cases & documentation update.