Unassociated form controls should be removed from form.elements even if controls are accessed by names.

Import WebKit r154761 [1] and r154765 [2].
> Remove elements from the past names map of a form element when they are
> disassociated with the form to match the behaviors of Firefox 24 and Internet
> Explorer 10. The specification feedback has been submitted to WHATWG in
> http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-August/040586.html

A function to unregister associated elements also removes them from the
past names map. The new code uses toHTMLElement(FormAssociatedElement*),
which can't be used in FormAssociatedElement destructor. We need to
move setForm(0) calls from ~FormAssociatedElement to subclass destructors.


Note that this CL dropped the RefPtr->raw pointer change in [1]. We'll address
it later.

[1] http://trac.webkit.org/changeset/154761
[2] http://trac.webkit.org/changeset/154765

BUG=190026
TEST=automated.

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

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