[graphite] Replace BlockReader with ShaderNode trees

PaintParamsKeys can be converted to an explicitly represented tree of
ShaderNodes that are stored in an arena (scoped to the lifetime of the
SkSL generation).

This cleans up the preamble and expression generator functions
because the tree is created first and then can be recursed through as
many times as needed. Updates the other SkSL generation utilities to
iterate over ShaderNode trees instead of a vector of BlockReaders.`

Change-Id: I26eca3b18ecfa88b3e50635e908ff376893f5464
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/669976
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
10 files changed