FYI: ERFA wrapper factorization

This is an attempt to factorize most of the code on the python side of the ERFA wrapper. This follows what @mdboom has done in #3164. It reduces the memory footprint, but may have a small performance penalty per ERFA call. I have no precise quantification of these two aspects.

PS: I will be out of touch for the next four weeks. Thought I would push this out, in case somebody wants to look into it. This is a very low priority in comparison to all the other ERFA related PRs...
I just used my check_broadcast utility.  The version in #3181 is here:

https://github.com/embray/astropy/blob/erfa-factorization/astropy/erfa/erfa.py#L174

This started from your code but, I think, made a few simplifications (it requires fewer loops over the arguments, mainly).