Fix context cleanup

This pull request attempts to solve #22 issue. In order to do this, it adds tracking of the spawned sockets by the context, and destroy them before calling `context.term`.

I think this design decision is used in PyZMQ.

What do you think @fagg ? Is it better to leave this issue to the user?