Match "from" value of IQs to the original destination.

This change causes the code to record the destination of IQ requests
so that the "from" value of the reply can be matched against it.

The wrinkle is that the "from" value of IQs without a destination vary
depending on the XMPP server. See
https://github.com/agl/xmpp/issues/13#issuecomment-34559271

Fixes #13