Remove template parameter on ComputedStyleBase.

In a previous patch, we made ComputedStyleBase a template class. This
allowed ComputedStyle to pass itself as a template parameter so that
ComputedStyleBase can access methods on ComputedStyle.

However, this meant that all the ComputedStyleBase code were in a
single header file. Whenever it calls a non-inlined function declared
without CORE_EXPORT, it would cause a linker error. This is because
ComputedStyleBase functions were being inlined in different translation
units that did not have the necessary symbols.

Whilst we could make an explicit instantiation of ComputedStyleBase
with ComputedStyle, it is much easier to go back to the original .h/cpp
split. To make this work, we forward declare ComputedStyle in
ComputedStyleBase.h. Whenever we call methods on ComputedStyle, we do
that in ComputedStyleBase.cpp. We also have to make diffing functions
static functions that took two ComputedStyles instead of an "other"
ComputedStyleBase.

This patch does not change behaviour.

Diff of generated files:
https://gist.github.com/darrnshn/18645fc5c36cc74e00f2724be2079f0a/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2919343002
Cr-Commit-Position: refs/heads/master@{#477580}
9 files changed