This will produce cross-version wheels so we won't have to do
releases just to make new wheels when new versions of Python
are available.
Also modernize the build process a bit to require setuptools and use
the native "optional" flag for extensions.
Our previous CI on Travis has been broken for a while due to their
move from travis-ci.org to travis-ci.com. Instead of fixing things up
there, move everything to github actions.