Add separate rows as the lowest level wm container:
- Each row points to a single window
- Each window may be pointed to by multiple rows, as long as the rows
are in separate tags.
Add search functions for windows:
- Windows can no longer have direct parents because they can be in
multiple tags.
- Use search function to find a window from the current tag, then
return it's path (the list of parent containers).
- This is slower, if it becomes a problem, the windows parents can be
cached either in the win_wm_t structure, or parent pointers can be
added to each of the containers.
- Using search functions also alleviates some headaches involving
updating the parent pointers.