ENH: Use MPIUtilities::Printf instead of macros
ENH: Get global number of halos
BUGFIX: Fix erroneous IsComplete condition

Code was ensuring that the number of halos is greater than
zero. However, some processes may not have halos. Hence, some
processes would evaluate to IsComplete()==true while others
would evaluate to IsComplete()==false. This would lead to a
hang, downstream there are collective communication calls occuring.
BUGFIX: Remove some erroneous asserts
DEBUG: Added some code for debugging