Introduce collective decorator

Adds a warning to the docstring of the decorated object that it
should be called collectively.
Decorate appropriate objects with new collective marker
Merge pull request #211 from OP2/collective-decorator

Add a new decorator @mpi.collective that adds a note to the object
docstring that the call is logically collective across MPI ranks.
Note that this must appear /before/ @property decorators, because they
return a property function (with read-only docstring) rather than the
undecorated function.