Closes #28. Closes #22.

- Make dropdown selection atomic (dropdown state can't change during selection)
- Dropdown selection methods now throw errors if the requested item
- Dropdown selection methods wait for the requested option to appear before erroring