Make indent command to work with positional CSS selector, e.g. :first-child, with visibility

This patch changes to compute range of contents in list item before inserting list element in IndentOutdentCommand::tryIndentingAsListItem() to avoid visibility change resulted by inserting list element.

The crash, assertion isn't Element, is caused by CompositeEditCommand::cloneParagraphUnderNewElement(start, end, outerNode, blockElement) tries to move nodes in ancestries until Document rather than limited to outerNode. This wrong |start| is passed as node before list element in VisiblePosition of start of list item contents. When list item is visibile, |start| is list item. Although, in this case, the list item is hidden, because the list item is second child element.

Here is sample HTML before calling CompositeEditCommand::moveParagraphWithClones(), which calls cloneParagraphUnderNewElement() in IndentOutdentCommand::tryIndentingAsListItem()

abcd<ul><UL></UL><li>xyz</li></ul>
- <UL></UL> is inserted list
- <li>xyz</li> is the list item to move

BUG=309010
TEST=LayoutTests/editing/execCommand/indent-with-first-child-crash.html
R=leviw@chromium.org

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

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