Extract webkit_unit_tests from blink_web component.

- Make BLINK_WEB_IMPLEMENTATION a define exported by the build system, like most
  of the others, rather than defined in a header.
- Create a WebExport.h header (similar to CoreExport.h, etc.) which can be used
  to export symbols from blink_web to webkit_unit_tests.
- Export symbols used from unit tests that aren't yet exported.
- Remove build logic to compile unit tests into blink_web component in component
  (shared_library) builds.
- Handle MSVC C4275 issues: base classes are either exported or, if they are
  clearly pure-interface or pure-data, marked to suppress the warning.
- Adds an explicit web -> base dependency (due to platform using base, and gyp
  not propagating this). This is similar to the equivalent in core.
- Unexports WebRTCDataChannelHandlerClient. It's not exported from blink_web,
  and only happened to work before because one of the modules unit tests included
  the header, and that was previously linked into blink_web.

This makes the blink_web component substantially smaller, as it no
longer pulls in unit tests, gtest, and so on. It also unblocks
removal of several hacks that existed to accommodate the previous
setup.

BUG=590749

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

Cr-Commit-Position: refs/heads/master@{#378773}
31 files changed