Fix non-linear selection handling in ce.Surface#focus

Table selections were being handled kind of correctly,
but we weren't calling onModelSelect() for them, which seems
wrong. Null selections weren't being handled at all.

Run onModelSelect() and the deferred conditional
selectFirstContentOffset() call for all selection types,
and focus $documentNode as the default behavior for
selection types that don't have explicit behavior.

Without this, calling .focus() on a surface after
creating it didn't do anything, because its selection
was a NullSelection. This broke pretty much every
use of SurfaceWidget.

Bug: 73097
Change-Id: I764791bc7cf02fe02fc3ccf477bf304551274294
Merge "Fix non-linear selection handling in ce.Surface#focus"