[BREAKING CHANGE] Merge ProtectedNode into FocusableNode

Because everything in VE is selectable and therefore focusable.

Bonus:
* Only render highlights with non-zero dimensions
* Wrap highlights in one div which takes the event handlers
* Move 'position' from UI to CE surface
* Emit 'position' instead of 'rerender' on a particular
  focus node after slug animation
* Emit 'position' on window resize (debounced by 50ms)
* Update context, redraw highlights and redraw size
  handles after 'position' event (Bug: 55789)
* Wrap plain image nodes in spans in CE so shields
  can be attached properly.

Breaking changes:
* ProtectedNode no longer exists
* 'position' emitted by CE instead of UI surface
* ce.Surface#replacePhantoms/Highlight replaced with
  #appendHighlights

Bug: 55789
Bug: 64563
Bug: 65616
Change-Id: I2ca68f120066edcfa00534948dd924c28ba0cd77