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
(cherry picked from commit 1ee759b88b2fdb3af57dcfa3cf26903eb5ce0631)