Restructure Extension processing.

Previously, all error handling was done in the Parser directly,
and DSLCore was used to create the Extension object. Now, the
Parser parses the extension information and hands it off to
Extension::Convert for error handling. DSLCore is no longer
involved.

This happens to improve error reporting slightly; the
`UnsupportedExtension` test no longer reports the rest of the
extension line as unrecognized SkSL tokens.

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