Introduce DocumentSupplementable and WorkerSupplementable

This change introduces DocumentSupplementable.h and typedefs
DocumentSupplement and DocumentSupplementable.
Although DocumentSuppleentable is just a typedef so far,
we could possibly turn it to a real class and help decoupling
supplement classes from Document.

WorkerGlobalScope also gets WorkerSupplementable respectively.

Then this turns some Supplement<ScriptExecutionContext> to
DocumentSupplement or WorkerSupplement.
It's needed because Document and WorkerGlobalScope are
going to be decoupled from ScriptExecutionContext
inheritance chain.

Note that ScriptExecutionContext is no longer a Supplementable
as all the supplements were moved elsewhere.

R=dglazkov,abarth,tkent
BUG=305497

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

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