More intelligent waiting

some minor refactors so that we can do more interesting things with PageObject elements and element_lists