Better geom arguments and try to match ggplot2 api

**What happened**

- Try to match ggplot2 api using VALID_AES, REQUIRED_AES
  and PARAMS geom class variables.
- Introduce geom.params to hold the none aesthetic
  geom parameters
- Introduce TRANSLATIONS geom class variable to help
  automate the renaming between ggplot2 API aesthetics
  names and matplotlib plotting arguments.
- Strip duplicate code from the geoms and remove
  unused imports
- Fix up a few tests to match the changes.