GraphX merge upstream changes and switched vertex id type to long

In this pull request I have:

  1) merged changes from upstream into the graph branch, 
  2) added in some old changes I had never committed,
  3) switched to long vertex ids, and
  4) switched to using 2d partitioning.

Unfortunately, I have not had a chance to test these changes extensively so you may want to pull into an alpha branch.