Check that level exists in function communication routines
This commit is an outcome of the discussion on MR !749 (closed). Instead of trying to capture when at() throws on a communicators_´ or
additiveCommunicators_` map, we check ourselves beforehand that a key with the value of the level parameter exists. This is done in the corresponding function classes.