update bundled pybind11 headers to v2.4.3 for Python 3.8 updates
The Python C API made some updates, including to the deallocation protocol for heap-allocated type objects. I don't believe the C++ extension code in gmxapi is affected much, if at all, but we should update the template headers we use to incorporate the Python 3.8 compatibility updates from the upstream pybind11 2.4.3 tag.
Additionally, we should probably make a tighter declaration of supported Python versions. We currently require Python version >=3.5 and <4.0. We could put a hard limit at the highest tested version, or we could have a soft limit with a build time warning.
Update bundled pybind.
Update the pybind11 headers from the 2.4.3 tag. Addresses Python C API
updates from the Python 3.8.0 release.
Decrease the maximum allowed Python version for gmxapi.
Update setup.py to require Python version <3.9. We should allow ourselves
a chance to review and respond to changes with the Python 3.9 release
before asserting support.
Changes with Python feature releases aren't likely to affect scientific
results, but could cost valuable computing resources. Historically,
gmxapi updates for feature releases have included Python base class
adjustments (responding to changes in the `typing` module with Python
3.7) and pybind11 header updates (responding to Python C API changes).