Specialize mapReduceTriplets and aggregateNeighbors for accessing subsets of vertex attributes

The user defined function in mapReduceTriplets and aggregateNeighbors 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.

Not ready to merge yet. To do:

* Create destination-only and no-attribute versions in addition to source-only.
* Consider creating specialized versions of vid2pid ahead of time rather than on-demand in mapReduceTriplets.
* Verify that this change actually improves performance.
* Consider avoiding code duplication.