Fix frame switching after frame redirect/creation
Remove redundant code, add a new listener to be more consistent
Monitor a tab's frames as a list with the current frame at its head
Change DomUtils.makeXPath to loop as an array rather than an object

This fixes the tests, which were broken by makeXPath trying to recurse
over Arrays with an augmented prototype.
Small cosmetic changes
Store frameIds directly in background page
Don't record frameIds for frames only containing a frameset

Frameset frames have no content of their own -- they only embed other
pages in sub-frames. The user can't perform any actions (of ours or
the browsers) with a frameset focused, so we might as well just not
focus it.
Frames; tidy up.
Frames; more tidy up.
Frames; more tidy up; fix typo.
Frames; do not guess frame on unregisterFrame.
Frames; remove unnecessary comments.
Frames; always start rotation from the current frame.
Frames; just add new frames to the end.

We don't need to worry where frames are added, nextFrame will find the
right frame to start from anyway.
Frames; more cleanup and simplification.