Push context switching into a role-based interface.

Subclasses of RemoteWEbDriver that need this should extend TargetLocator
and use covariant return types to keep everything happy and sweet.