I tried to polish the code around the doSuperstep() function and VertexMessageIterable class. I got rid off things that are a little bit tricky to understand and I think that this patch is more readable. Please comment, if something is not understandable or fluent, must be changed. The point is to have nice and readable code.
The functionality is exactly the same as the old code.