Consistently pass table columns through the various psf stages
This issue is a follow-on from #745 (in particular https://github.com/astropy/photutils/pull/745#issuecomment-521692910). #745 added an extra_output_cols keyword to the photometry classes, which allows additional information from the finder to be passed to the output of the photometry run. However, the confusing thing is that it really is only relevant to the finder, because the other parts of the PSF process pass tables on through. This is confusing and should be addressed... somehow.
The most straightforward option would seem to be to have all the stages of the photometry process produce their own tables, and have a uniform way of adding those into existing tables. The catch is that there's probably at least some places where that's complicated by something (e.g. rows being added/subtracted) so that it's not so straightforward. The other option is to say every stage always outputs a new and different table, but they all get extra_output_cols as an option and have to individually figure out what to do with that. There's also probably other options I haven't thought of.
Additionally, once this is worked out, a complexity currently ignored by #745 needs to be addressed: if two different stages yield columns with the same name, what do we do? i.e. does extra_output_cols have to then be a dictionary that maps stages to the part that's extra? Or do we leave extra_output_cols as a list and just say "really you shouldn't have duplicate column names", but if encountered do some re-naming so they don't over-write each other?
This is probably done best as part of the larger psf refactor (i.e. #766 et al.), but this issue is to keep track of this specific aspect.
cc @Onoddil