Allow SkSpan<T> declarations with incomplete T

Inline SkSpan::kMaxSize into its one use to allow SkSpan to not depend
on T being complete in the class definition (only in methods that need
it). This change is mostly about mcvc++ eagerly evaluating the values of
static constant members even before they are needed (gcc and clang
currently defer).

Note that std::span<T> requires T to be a complete type but all
implementations currently "mostly" allow an incomplete type. Using
std::span with an incomplete type is "ill-formed, no diagnostic
required" by the specification.

Change-Id: I02a1b08fbd41cc8d3e3d32de2f779e74c80a503d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/906178
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
3 files changed