Image from catalog

Incomplete, work in progress - I made a pull request to allow discussion about the structure & implementation.

Note that some functions also use stuff used in npred_cube2 pull request (which is why I rebased against it in this PR).

To do (Ellis):
- Check output looks sensible
- Write unit tests
- Add doc strings
- Add short tutorial (?)

Anything else missing?
So you're just adding things to the Fermi catalog table?
Then maybe make this a private function and optionally call it at the end of `fetch_fermi_catalog`?