Enforce IWYU on GrBackendSurface and reduce inclusions of it in headers

GrBackendSurface.h brings in a lot of various backend-specific
includes due to its structure. This causes some dependency issues
if it is included too broadly. Thus, I enforced IWYU on several
files that were including it unnecessarily:
 - GrRecordingContext
 - GrImageContext
 - GrContext_Base

and also enforced IWYU on it, itself. There were a few files that
were not directly declaring a dependency on SkiaVulkan, so I
cleaned those up also.

Client CLs:
 - https://github.com/flutter/engine/pull/42563
 - https://crrev.com/c/4575848
 - http://cl/537334796

Change-Id: I6d5a55417a4a0ea354bc74e1d1259f55b41e2d8f
Bug: skia:13052
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/704942
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
20 files changed