VCard cache with multiple connections broken

Refreshing vcards in the cache where the vcards are pulled down from multiple connections is broken. When you create the event listener for cacheFlushTImer on line 282, you create a closure, where it reuses the first connection passed into getVCard(). Then, when the cache timer fires, all vcards are requested on that connection, whether they came from that connection or not. This means, if you have more than one connection in use, all vcard refreshes are requested from the first connection passed into getVCard, leading to all sorts of issues.