Compile include/ headers on their own

In https://review.skia.org/1024156, we removed IWYU logic, but
this also removed the ability for us to test compiling headers
on their own (which other build systems do). This caused a missing
#include to land in Skia but break upstream things [1].

By adding in the way to generate .cpp files for headers, this
will allow us to catch that type of error. Unlike before, where
there was a hand-curated list of headers, I did my best to include
all public headers (and then those from select/core) which would
have caught the previous error. If we like this, I can add other
subdirectories to src to the list. I also did my best to avoid
duplication of header files, so they are listed in one place
and not two (e.g. 2 different BUILD.bazel rules) so it's hopefully
easier to maintain.

Change-Id: Ib5589c6ac06709d5a472bc7c524cc7a3b2a506b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1029376
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Kaylee Lubick <kjlubick@google.com>
35 files changed