Improved SkSL symbol table dehydration / rehydration

The previous symbol table handling only actually worked for the simple
case of a single builtin symbol table. This fixes symbol table
inheritance, adds  builtin flag tracking, and fixes the handling of
builtin types. This doesn't result in any behavioral changes yet, but
these changes are necessary to support the upcoming dehydrate /
rehydrate tests.

Change-Id: Ib7f2ad19450d41be89f774e1417a78c97e0ea7ef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/499927
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
8 files changed