Death to isolation

Introduces ce.Surface#(de)activate which is called when
windows are opened/closed. Deactivate removes the native
selection, stops the surface observer and redirects all
showSelection calls to a fake selection renderer, allowing
the native selection to be placed in another window (e.g. an
inspector) without appearing to lose your document selection.

Removes the extra key listeners hack for target/document commands
now they aren't isolated.

Bonus: Fix getClientRectFromNode to work from an arbitrary range.
Previously it always used the current selection's range.

Change-Id: I55c55439f93f9780eda2014c5a5f46270129e609
Merge "Death to isolation"