At the moment user-defined groups and communicators are not implemented and maybe never will be. Nevertheless user-defined groups and communicators have been taken into consideration while making the software-design (e.g. reserved field for communicator in message-envelope). So it should be not too hard to implement groups and communicators. However a lot of things concerning communicators are hardcoded (e.g. parameter checks).
To save memory only one byte is used to encode the communicator. So if one day user-defined communicators are implemented there are only 256 possible communicators.