The GroupManager.update method was not designed to be called concurrently.
It was wrapped in a synchronized block which was ineffective since most of
the computation happened asynchronously in Futures.
This patch introduces a SerializeExecution helper which can be used to
substitute such incorrect usages of synchronized.