Ignore visibility when checking whether Position is editable or not at DeletetSelectionCommand
This patch introduces |lastEditablePositionBeforePositionInRoot()| to get
to editable |Position| instead of |VisiblePosition| for making
DeletetSelectionCommand to work editable position regardless its visibility.
The root cause of issue 339187 is |DeleteSelectionCommand| shrinks end point of
selection range, start position is start of "bar", which is hidden editable,
and end position is "foo", which isn't editable, to editable position but
|DeleteSelectionCommand| checks both editability and visibility, then it gets
null position since end point is hidden.