Make Device draw functions public, clean up header organization

The draw functions on SkDevice were protected, which severely limited
the utility of using SkDevice directly. You'd have to always wrap it
in an SkCanvas or an SkSpecialSurface. I believe they'd been protected
for historical reasons when it was a public type.

This CL makes the draw functions and several other internal/harmless
functions public, re-arranges their declarations to be grouped into
similar functionality, and makes all remaining virtuals private. It
also deletes the unused TextFlags struct and removes many redundant
friends.

Bug: b/40042366
Bug: b/299474380

Change-Id: I5b3113caf470c6e69c7e539f1bd837339ddc754a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/752538
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
15 files changed