Redmine/6553: Fix implicit looping over multiple lists

Pull request for initial review of the changes to the code. Planning to add more test coverage to the acceptance test before merging.
Where you call it from is irrelevant. Is there anything misleading about "tip is null" when applied to an Rlist pointer? I think it is a very descriptive name of what it does.

Do we really need to debate such mundane names such as this... :-P