POC: use typing.final
When working on index/indexing code I frequently find myself checking whether a method is overriden in subclasses.  `@typing.final` marks a method as not-overriden in a way that mypy can check (py38+).  This imports typing.final in py38+ and makes a dummy otherwise.

We'd need to make sure the CI runs mypy in py38.