Add Literal<T> and getVecComponent<T> for template code.

This gives template code a generic way to access IntLiteral/
getIVecComponent or FloatLiteral/getFVecComponent based on their
template type.

(Interestingly, we have BoolLiterals and support vectors of bools, but
don't have any paths in the optimizer that support constant-folding bool
vectors, so we don't have a getBVecComponent.)

Change-Id: I7af754f77544716cf6cd5c6703a07fb3dd1d5173
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332742
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
4 files changed