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. 


BUG=339187
TEST=LayoutTests/editing/execCommand/delete-hidden-crash.html

Review URL: https://codereview.chromium.org/340713003

git-svn-id: svn://svn.chromium.org/blink/trunk@176497 bbb929c8-8fbe-4397-9dbb-9b2b20218538