ensure driver is in desired context to check for stale elements

If the driver context is inside a frame, it will fail on an assert_not_stale call, even if the element is actually there. Specs for this are here - https://github.com/watir/watirspec/pull/50
Ah, I see it's used below - but I don't understand why this is necessary. I'm pretty sure no other `#locate` method in the code base mutates the object state likes this. 
Instead the return value of `#locate` should be assigned to `@element` in `assert_exists`, and that's what should be used in `assert_not_stale`.

It also seems like `Element#assert_no_stale` simply assumes that `@element` is present, e.g. it simply assumes that `assert_exists` has been called earlier. That seems problematic.