Track DisplayItemClient aliveness for each PaintController

After CHECK_DISPLAY_ITEM_CLIENT_ALIVENESS was enabled, we didn't get
crashes in DisplayItemClient::~DisplayItemClient() when the
DisplayItemClient should be alive. We still get crashes in
PaintController::updateCacheGeneration() [1]
which indicates that we still have short-lived DisplayItemClient but
not catched by aliveness checking. This might happen if there are
multiple PaintControllers (e.g. one created by SkPictureBuilder and
another by GraphicsLayer).

Separately track DisplayItemClient aliveness for each PaintController
in order to catch the issue.

[1] https://crash.corp.google.com/browse?q=custom_data.ChromeCrashProto.ptype%3D%27renderer%27%20AND%20custom_data.ChromeCrashProto.magic_signature_1.name%20like%20%27blink%3A%3APaintController%3A%3A%25%27%20AND%20product.version%3D%2753.0.2751.0%27&ignore_case=false&enable_rewrite=true&omit_field_name=&omit_field_value=&omit_field_opt=%3D&stbtiq=&reportid=20bc8a5c00000000&index=2#4

BUG=609218

Review-Url: https://codereview.chromium.org/2031623002
Cr-Commit-Position: refs/heads/master@{#397243}
3 files changed