Split vTableReplicated into two RDDs

Previously, `(vTableReplicated: IndexedRDD[Pid, VertexHashMap[VD]])` stored one hashmap per partition, taking vertex IDs directly to vertex attributes.

To take advantage of @rxin's new hashmaps (see rxin/incubator-spark@32a79d6d13be8a03071296d251a3e532bf964cc0), this pull request splits that data structure into two RDDs:

`(vTableReplicationMap: IndexedRDD[Pid, VertexIdToIndexMap])` stores a map per partition from vertex ID to the array index where that vertex's attribute is stored. This index refers to an array in the same partition in `vTableReplicatedValues`.

`(vTableReplicatedValues: IndexedRDD[Pid, Array[VD]])` stores the vertex data and is arranged as described above.

As a sanity check, this change passes GraphSuite, but I haven't performed any further testing.