Extract #find_all_or_warn pattern into method

Every list command followed the same pattern of showing everything if no
args are passed or filtering if some were whilst warning if the ID can't
be found.

Apart from the warning becoming generic this behaves as before whilst
simplifying things.