PetscSegBuffer: make segmented buffer from PetscBuildTwoSided reusable

Segmented buffers are used to incrementally build lists without knowing
the size up-front. The addresses of insertion locations are stable,
unlike with re-allocate and copy mechanisms.
PetscSegBuffer: add extraction to existing buffer and in-place

* PetscSegBufferExtractAlloc: allocates new memory (old behavior)

* PetscSegBufferExtractTo: use provided buffer

* PetscSegBufferExtractInPlace: pack into space that will be used by
  next call to PetscSegBufferGet().
DMPlexCreatePartitionClosure: replace quadratic algorithm

This implementation uses a PetscBT to avoid duplicates and incrementally
packs a PetscSegArray with the points needed by each rank.

This function used to dominate run-time when loading meshes in parallel
and is now a negligible fraction of run time.
Merged in jed/plex-scalable-partition-closure (pull request #11)

DMPlexCreatePartitionClosure: replace quadratic algorithm
opensolaris: remove c++ builds [as it doesn't work with PETSC_EXTERN]
- switch c++ complex to C-complex
- swithc c++ basic - to misc c build
absoft: add python2.4 test to it. And disable sharedlibs [libafio.a a compiler lib is not -fPIC compiled]
renable mpich1 test [by disabling cxx & sharedlibs]
64bit-indices: wierd error with system mpi & superlu_dist+ metis. Switch to download-openmpi
[thrash:/sandbox/petsc/petsc.clone-3] petsc> mpicc -o conftest conftest.c -L/sandbox/petsc/petsc.clone-3/arch-linux-pkgs-64idx/lib -lsuperlu_dist_3.3 \
-llapack -lblas
[thrash:/sandbox/petsc/petsc.clone-3] petsc> mpicc -o conftest conftest.c -L/sandbox/petsc/petsc.clone-3/arch-linux-pkgs-64idx/lib -lsuperlu_dist_3.3 \
-llapack -lblas -lparmetis
/usr/lib/libmpich.so: undefined reference to `MPL_trfree'
/usr/lib/libmpich.so: undefined reference to `MPL_env2str'
/usr/lib/libmpich.so: undefined reference to `MPL_trlevel'
/usr/lib/libmpich.so: undefined reference to `MPL_trvalid'
/usr/lib/libmpich.so: undefined reference to `MPL_trmalloc'
/usr/lib/libmpich.so: undefined reference to `MPL_trspace'
/usr/lib/libmpich.so: undefined reference to `MPL_env2range'
/usr/lib/libmpich.so: undefined reference to `MPL_trcalloc'
/usr/lib/libmpich.so: undefined reference to `MPL_env2int'
/usr/lib/libmpich.so: undefined reference to `MPL_trdump'
/usr/lib/libmpich.so: undefined reference to `MPL_putenv'
/usr/lib/libmpich.so: undefined reference to `MPL_env2bool'
/usr/lib/libmpich.so: undefined reference to `MPL_trstrdup'
/usr/lib/libmpich.so: undefined reference to `MPL_trrealloc'
/usr/lib/libmpich.so: undefined reference to `MPL_TrSetMaxMem'
/usr/lib/libmpich.so: undefined reference to `MPL_trinit'
/usr/lib/libmpich.so: undefined reference to `MPL_trDebugLevel'
/usr/lib/libmpich.so: undefined reference to `MPL_trid'
collect2: ld returned 1 exit status
switch test [from download-mpich] to system openmpi
Merge branch 'balay/nightly-defaultconfigs'
exodusii.py: indent matching popLanguage(), bug from 023c8e86d192d0
fixes to netcdf-cxx.py; different include file names, different library name, check for function