MPI communicators

MPI communicators are not serializable, so we need to ignore them when pickling Halos. When unpickling we use the default PyOP2 communicator. Also add a function to return the PyOP2 communicator.