GraphLab bug fix & set start vertex

Two changes to GraphLab

1. Fixed a bug where if a vertex has 0 vertices that scatter to it, it stays active forever.
2. Add ability to set starting vertices using a predicate, with default being all vertices are active.

For 2 above, debated if we should allow the predicate to operate over edges (essentially starting with a scatter phase), but stuck with the simpler one for now.