Introducing an Improved Pregel API

The initial Pregel API coupled voting to halt with message reception.  In this revised the vertex program receives a `PregelContext` which enables the user to signal whether or not to halt as well as access the current iteration number.
Uncommenting lines 279 and 280 leads to a substantial slow down in later iterations indicating that there is still an issue with `unpersist`.  @ankurdave any thoughts?