Fixed a problem with multiple data calls

When two contexts were active simultaneously, deactivating one of them would mark the second one as disconnected although its data call would actually remain active.

I find strange, inefficient and generally wrong to request data call list change notifications more than once. We receive and handle the same thing several times (as many times as many contexts we have; currently twice). That's pretty stupid.

Also plugged couple of memory leaks and removed a few useless statements.