this was only done in some cases before and it was possible to enable weightpaint+sculpt at the same time when enabling sculpt by directly running the mode switching operator. add generic function to ensure a compatible mode before entering the new mode (added to each operators exec function)