Reland "Saves 20K: Move non-parametric code for SkTDArray to common code"

This is a reland of commit e529a4637f677a9463c26d87f78330ec5483e7e4

Add SK_SPI to get the symbols to show up.

Original change's description:
> Saves 20K: Move non-parametric code for SkTDArray to common code
>
> Share common code from each of the template instances.
> The big wins in sharing:
>    resizeStorageToAtLeast
>    append
>    redoing the constructors
>
> Savings:
> From bloaty:
>     FILE SIZE        VM SIZE
>  --------------  --------------
>   +100%    -128  +100%    -128    .rodata
>    +99% -1.44Ki   +99% -1.44Ki    .eh_frame_hdr
>    +65% -2.76Ki  [ = ]       0    [Unmapped]
>    +99% -6.34Ki   +99% -6.34Ki    .eh_frame
>   +100% -9.34Ki  +100% -9.34Ki    .text
>
> Total -20Ki
>
> Stripped binary difference:
> 6502952 -> 6482472 = -20480
>
> Bug: skia:13657
> Change-Id: I71c629d815411c75452b51de6f086e11de62a105
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/580577
> Reviewed-by: John Stiles <johnstiles@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

Bug: skia:13657
Change-Id: Ieeedceaf20e603b387089b20af426a15b5309a24
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/583242
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Herb Derby <herb@google.com>
6 files changed