Auto outside pkg

At the request of @ChrisBeaumont, I've re-written the part of #1801 that allows using ``automodapi`` to document things that are not actually in the package you're documenting.

This is useful for "namespace modules", e.g., where you have something like:
```
implementation1.py
implementation2.py
namespace.py
```

where `namespace.py` is something like:
```
from implementation1 import *
from implementation2 import *
```

If you just do ``.. automodapi:: namespace`` in master, nothing will appear, because `implementation1` and `implementation2` members aren't included.  But after this, if you do:
```
.. automodapi:: namespace
    :allowed-package-names: implementation1, implementation2
```
Anything that's *acutally* in `implementation1` will show up on the module summary.