STYLE use absolute imports
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them

The code style guide reads

> 
> Imports (aim for absolute)
> ==========================
> 
> In Python 3, absolute imports are recommended. Using absolute imports, doing something
> like ``import string`` will import the string module rather than ``string.py``
> in the same directory. As much as possible, you should try to write out
> absolute imports that show the whole import chain from top-level pandas.
> 
> Explicit relative imports are also supported in Python 3 but it is not
> recommended to use them. Implicit relative imports should never be used
> and are removed in Python 3.
> 
> For example:
> 
> ::
> 
>     # preferred
>     import pandas.core.common as com
> 
>     # not preferred
>     from .common import test_base
> 
>     # wrong
>     from common import test_base

yet this isn't checked (nor followed).

So I've made a little package which does this - it's pretty simple and light ([link to source](https://github.com/MarcoGorelli/abs-imports/blob/main/abs_imports.py)), just standard Python libraries (`ast.parse`). Timing on my laptop:
```console
$ time pre-commit run abs-imports --all-files
abs-imports..............................................................Passed

real    0m1.102s
user    0m10.050s
sys     0m0.373s
```

I asked about doing this on the gitter channel and got the response

> in general we go for absolute imports, the exception being in places where that creates circular imports (generally init files)

I didn't find that this created any circular imports (at least, running `./test_fast.sh` worked fine), but `__init__` files can always be excluded if necessary (`exclude: __init__\.py$`)