Specialize mapReduceTriplets for accessing subsets of vertex attributes

The user defined map function in mapReduceTriplets is passed a full edge triplet, but it may not access the source or destination vertex attributes. This pull request specializes these functions for these cases to reduce communication.

Performance comparison for 20 iterations of PageRank on LiveJournal:

Commit | Comm. per shuffle | Runtime
--- | --- | ---
6ee05be1c83768d50bff72f63f3a9c533c18e8c8 (master before #60) | 1675 MB | 484 +/- 6.5 s
1a06f707e358055a2126a71bc77f235a181c225d (master after #60) | 1629 MB | 244 +/- 8.0 s
**53d24a973e7bd71d1509a326f0f12376a252f1db (aggregateNeighbors-variants)** | **1238 MB** | **160 +/- 7.7 s**
d1ff1b722274de8e03938452d8155f2a26c55f96 (pid2vid) | 1123 MB | 148 +/- 4.6 s
3c0995dbbc7266bb90d1add75ee4820a6b385b10 (Bagel) | | 207 +/- 14 s

Resolves #8.