Pass a struct to ContainerNode::childrenChanged() instead of separate arguments

Pass a struct to ContainerNode::childrenChanged() instead of separate
arguments. This is more extensible this way as this virtual function has a lot
of overrides. The new struct differs from the previous arguments in that:
- childCountDelta integer is replaced by a ChildrenChangeType enumeration as
  it as always (-1: ChildRemoved, +1: ChildInserted, 0: TextChanged,
  -numberOfChildren: AllChildrenRemoved)
- changedByParser boolean is replaced by an enumeration for better readability.

This CL does not contain any functional changes to keep it small. However, this
enables us to pass more information about the node being added/removed (e.g.
was it an Element?) so that we can do less recalculations is some cases.

This is based on WebKit r154957 by antti@apple.com:
http://trac.webkit.org/changeset/154957

R=esprehn@chromium.org, eseidel@chromium.org

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

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