String -> const char* where possbile

I was aimlessly looking at large symbols in Skia and SkSL::Context's
constructor popped out at me.

Part of this size turned out to be inlined std::string destructor calls
to the moved-from temporaries created as arguments, with a little
"are-we-small-string" check and a conditional call to operator delete.

We can skip that by just not making those moved-from temporaries at all,
instead constructing the string only inside the Type where it doesn't
need to be immediately destroyed.

I switched all the constructors for type from taking String for the
name to const char* for the name where they still compiled.  The ones
that remain String create their type names dynamically.

Change-Id: I4af0d08b0c5535ab979ea535f225da6897b02390
Reviewed-on: https://skia-review.googlesource.com/c/160881
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
1 file changed