cleanup import order for core.indexes
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

This is just taking a bite out of #18151 i would like to put a flake check on this first before we change anything then selectively change 

right now these things are changed a fair amount depending on people’s editors Sure, this isn't really a priority.

w/r/t the linter, I've found flake8-import-order can be borderline too strict.  Generally the convention I find useful is `__future__` --> stdlib --> 3rdParty --> same_package_but_different_subpackage --> same_subpackage.