* update travis ci clang-format to clang-format-9 because we use that now
add python3-dev package becuase something inside ci thinks it has python but really does not
* try using python3.6
* try working around hot garbage that is travis-ci
* add deadsnakes repo for python3.8
* prevent nullptr deference when running in unit tests
* move python3.8 to main dependancy matrix and add python3.8 to homebrew deps
* add deadsnake apt repo
* add deadsnakes and python3.8 back to previous matrix
* dev package for python
* toggle hive build in ci
* dont add pybind11 if not bulding hive
* revert setting pyenv shim for travis ci
* make native builds on by default except for windows ci
* only apply native build being off for windows release target becuase that broke macos
It doesn't currently work for either test suite: we get a
`MemorySanitizer: use-of-uninitialized-value` immediately from both test
suites, with what looks like catch2 or gtest internals.
So just disable it for now.
We don't have anything that takes >10 minutes without producing output,
and travis_wait is really annoying by hiding output until the job
completely finishes.
The apt deps is installing a pile of stuff that isn't needed (and isn't
available on non-amd64); reduce the set and use a YAML reference to use
it only in the jobs doing a native build (none of the docker builds need
to install anything since everything happens inside docker).