C4Player: CursorLeft/Right: Instead of manual list traversal use iterator
C4EditCursor: Instead of manual list traversal use iterator
C4Object: Call Contents.GetLastObject() instead of accessing Last link directly
C4GameObjects: Use this instead of ::Objects
C4Game: Refactor CheckObjectEnumeration to not use manual list traversal
C4GameObjects: When shelving contents of InactiveObjects temporarily, make a copy instead of setting InactiveObjects.First
C4GameObjects: PostLoad sanity Contents check done with iterators instead of direct C4ObjectLink access
C4GameObjects: Sorting out objects with inactive state done with regular Remove/Add calls instead of manually doing linked list dance again
C4Object: ShiftContents done with iterators
C4ObjectList: Move First, Last to protected