Free HashSets on setWholeSubtreeInvalid.

In order to keep memory use as low as possible, free any HashSets which are
allocated in DescendantInvalidationSets when setWholeSubtreeInvalid is
called. Also ensure that none of the HashSets are re-created in a
DescendantInvalidationSet when wholeSubtreeInvalid is already true.

Additionally fixed some constness and removed non-existing method from header
file.

R=esprehn@chromium.org, chrishtr@chromium.org
BUG=335247

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

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