Add support for frames and nested frames
[EXPERIMENTAL] Avoid race conditions with promises for frame switching

Currently incompatible with webdriverjs' API...