setAttributeNode() does not properly normalize case.

setAttributeNode() verifies for existing attributes in a case sensitive manner.
Thus, it would add another attribute if specified in a case different from the
existing one. Instead, like setAttribute(), it too should modify the existing
attribute's value.

Added a new method: matchesIgnoringCaseForLocalName() which should be called
only when trying to do a localname comparison ignoring case.

Layout testcase added for verifying the behavior for both html as well as xhtml
documents.

WebKit changeset: http://trac.webkit.org/changeset/154054

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

Review URL: https://chromiumcodereview.appspot.com/22803008

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