Another attempt at removing comm world using functions.

Ok another attempt at pull request #169 .  I split this up a bit so that things can be backported.

The first two commits are the things that should be backported to the current release.  2677682 adds the new 'global' functions.  8c455ac is a fix for the solution transfer example using Trilinos (it's currently broken with default comm disabled).  That second one should get backported no matter what happens.

fe31929 just disables the old COMM_WORLD based stuff when the default comm is disabled.

The last two commits just fixup "make check".  I tried to avoid using the 'global' functions wherever possible (because we shouldn't be encouraging their use by users or developers).

Hit me with your thoughts!