Add a cache of LayerImpl's viewport layer type

This patch caches the viewport layer type of LayerImpl to fix a performance
regression in LayerImpl::ViewportBoundsDelta due to layer lookups.

Big changes in this patch:
* A viewport_layer_type_ member has been added to LayerImpl along with
getters and setters.
* The viewport layer type is updated when LayerTreeImpl's viewport layer
id changes, or when LayerImpl's scroll_clip_layer_id changes. Both of
these values affect the viewport layer type.
* DCHECKs have been added that the viewport layer type does not change.
Making this a constructor parameter to LayerImpl would be ideal but is
very difficult.
* DCHECKs have been added in LTI::IsViewportLayerId that verify
LayerTreeImpl's viewport layer ids are always in sync with LayerImpl's
viewport layer types.

BUG=715956
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2867793002
Cr-Commit-Position: refs/heads/master@{#470743}
6 files changed