Handle empty partition iterators

Empty edge partitions sometimes appear in the output of zipPartitions
for unknown reasons, causing calls to Iterator#next to fail. This commit
checks these cases, handles them by returning an empty iterator, and
logs an error if this would cause GraphX to drop a corresponding
non-empty partition.

Resolves amplab/graphx#52.

(cherry picked from commit 2265c87c387979c94275e673a16527f582b2f38a)
Log current Pregel iteration

(cherry picked from commit 54cbd2b4640db13a9cb10ce693e86b776d003907)

Conflicts:
	graphx/src/main/scala/org/apache/spark/graphx/Pregel.scala

(cherry picked from commit d419f00727d16fad3a08d604cdb01a11bd563386)
In Analytics, take PageRank numIter

(cherry picked from commit bcc79f2cfb7f26da43326d905e2d317f33ff45ee)
(cherry picked from commit 3860a4900bac7d4d7931ff133d734c6ba799a219)
In GraphLoader, coalesce to minEdgePartitions

(cherry picked from commit 1993225fde2c8f55b12644e47b7f874b68bd5d69)

Conflicts:
	graphx/src/main/scala/org/apache/spark/graphx/GraphLoader.scala

(cherry picked from commit dc5512a5db84f74ca3017529a64a32909cc0aa7d)