Fix the crash bug about selecting a marquee element.

This assertion is in CompositeEditCommand::moveParagraphs, L1223.
The assertion error happens because VisibleSelection(destination, originalIsDirectional) returns default VisibleSelection value If desitination is a marquee element.
Inside the constructor,  VisiblePosition(position, _).deepPosition() returns default VisiblePosition value if position is a marquee element.
Because VisiblePosition::canonicalPosition(position) returns default Position value if position is a marquee element.
This is caused by that position.upstream() returns parent Node if position is a marquee element. This is wrong.
When a marquee element is moving, its upstream should be itself.

To fix this issue, this cl change endsOfNodeAreVisuallyDistinctPositions() called enclosingVisualBoundary() which is called from upstream().
This cl make endsOfNodeAreVisuallyDistinctPositions(node) return true if node is a marquee element.

BUG=338424

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

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