Move btoa() / atob() implementation out of DOMWindow

Move btoa() / atob() implementation out of DOMWindow and move it to a
new DOMWindowBase64 namespace. Those functions are now static and can
easily be reused by WorkerGlobalScope later on when we want to expose
them to workers (as per the specification).

Implements statements now generate the same code as partial
interfaces, meaning that the functions are expected to be static, in
class / namespace of the same name as the supplemental interface.
A [LegacyImplementedInBaseClass] extended attribute is introduced to
maintain compatibility with existing supplemental interfaces and so
that their code can be gradually updated.

BUG=261226

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

git-svn-id: svn://svn.chromium.org/blink/trunk@154492 bbb929c8-8fbe-4397-9dbb-9b2b20218538
This change was causing many flakes in
webaudio/audiobuffersource-multi-channels.html and
webaudio/up-mixing-*-51.html.

Revert "Ensure that ArrayBuffers actively being used by the Web Audio API cannot be neutered"

This reverts commit fe5d3b7dc4b87a0815737dd8faff1e224205a5b1.

Conflicts:

	Source/modules/webaudio/AudioBuffer.cpp
	Source/modules/webaudio/AudioBuffer.h

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