Partitioner memory usage optimizations & vectormap<> class

This PR refactors the interface to METIS to decrease the overall memory usage by quite a bit.  Important changes are:
 
1. only invoke METIS on one processor, and then broadcast the result,
2. use vectormap<> instead of std::map<> to deal with ID mapping, and
3. buld the compressed-row-strorage connectivity graph in-place.

vectormap<> has already been ported to ParMETIS as well, and follow-on work will build the graph in place too.

Comments?