gateone.js:  Added a new function to GateOne.Utils that does exactly what you'd think:  GateOne.Utils.isDescendant(parent, child).
gateone.js:  Moved more terminal-specific stuff to terminal.js and terminal_input.js.  Also changed the way the overlay is handled so that it only fires when #gateone is no longer in focus--not just when a terminal loses focus.
terminal.js and terminal_input.js:  Terminals should no longer take focus/keyboard input when they're not active.  So if you have a workspace with, say, a File Transfer application open your keystrokes will go to the File Transfer app and not the last terminal you happened to be viewing :)
Playback plugin:  Cleaned up/optimized playback.js a bit (nothing special).