Load edges in columnar format

In GraphLoader.edgeListFile, load edges directly into EdgePartitions,
avoiding repartitioning.
Don't partition edges by default; refactor

Instead, expose Graph.partitionBy(PartitionStrategy).
Fix argument bug and closure capture