------
- Move to Python 3.8 and drop support for Python 3.6. Sentry is now using 3.8 so this library can upgrade as well.
- Use __future__.annotations where necessary
- Update all dependencies to latest and fix subsequent linting errors
- Correctly chain exceptions
- Follow PEP naming conventions for Exceptions: https://www.python.org/dev/peps/pep-0008/#exception-names
- Add Data Model concept to Entities for extra validation
- Create a type alias for sequences of conditions
- Use sequences for LIMIT BY and ARRAY JOIN since Snuba now supports those operations over multiple columns