[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.
This check looks good, but will `find_tab_by_handle()` ever return an invalid tab?