What does open-drain & push-pull mean?

Background: These concepts are important for microcontrollers, specifically general purpose input/output (GPIO) pins.