Wait for element to become visible properly

An element can be added hidden and then shown. `should_see_id_in_seconds` will fail in that case even if showing the element happens before the timeout.
Yes, see the individual commits. I felt it was necessary to refactor the `wait_for` to avoid duplicating code even more, it was already repeated in two places.

The last commit (4d6ade3) also fixes an error in the Travis build - but you don't seem to have it enabled, despite `.travis.yml` already existing in the repository.