How Developers Interact with AI: A Taxonomy of Human-AI Collaboration in Software Engineering