[RFC] FOR_ALL_TAB_WINDOWS cleanup. Add FOR_ALL_TABS and FOR_ALL_WINDOWS_IN_TAB.

Adds `FOR_ALL_TABS` and `FOR_ALL_WINDOWS_IN_TAB`. These combine together to make the `FOR_ALL_TAB_WINDOWS` helper that already existed.
Not sure. I put this check in because previously we were doing `FOR_ALL_TAB_WINDOWS` and looking to find the tab and the window both. `valid_tabpage` does the first check and ensures that the tab is in the tabs list. Then we can use `FOR_ALL_WINDOWS_IN_TAB` with the same behavior as the old code.

I am not entirely sure why we couldn't just return `tab->tp_curwin->handle` but I assume there is a reason for that...