sync: don't call a queue callback twice

Some time ago async was made a little stricter by forbidding queue and
forEach worker callbacks from being called
twice ([commit](https://github.com/caolan/async/commit/bb43829d29e91c8f314704876293ae3f7b22c82d)),
which absolutely makes sense.

However in some (rare) cases it is possible for the sync progress to do
such a thing: after a subscriptions sync, if a remote node has no local
listeners left, it needs to be purged. But the current code will cause
the callback to be called after this purge as well as after the normal
sync.

This commit fixes this by making sure that the callback can only be
called once.
Travis: use Node 0.10 too
Merge branch 'feature/fix-double-callback' into develop

* feature/fix-double-callback:
  sync: don't call a queue callback twice