What is the significance of having defined roles for agents in CrewAI, and how does it impact task delegation?