Beggining of fancy socket implementation

Hi Ash,

I've started the implementation of `zmq.Socket`.

Right now there are the basic stuff, and I have just copy/pasted the tests from core suite, changing `zmq_*` by `socket.*`...

Do you think in a better way to write these tests? Is it necessary to test the same things?

O.B.S.: This work is on top of pull-request #16