Add LifecycleObserver::m_observerType

Before this change, the type of each observer object is told
by the caller, which is error prone: Destructors contains
observerContext(0, type) call, whose |type| value is sometimes wrong.

This change teaches LifecycleObsever about its type on initialization
so that each object can aware of its own type and use it for
type-specific decisions. This approach should be less error prone
because the type is specified only once, at the initialization.

This change also removes ContextLifecycleObserver::m_scriptExecutionContext,
which should point identical object to LifecycleObserver::m_lifecycleContext,
By removing this, the size of ActiveDOMObject won't change even after
we add m_observerType.

BUG=277656
TEST=none, covered by existing test with modified ASAN and the fuzzer.
R=abarth, inferno, tkent

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

git-svn-id: svn://svn.chromium.org/blink/trunk@156893 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Gardening: The following tests are flaky.

- virtual/threaded/animations/interpolation/sample-interpolation-template-reftest.html
- inspector/elements/elements-panel-limited-children.html

BUG=248938,280932
TBR=rjkroege@chromium.org

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

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