Update SkTCopyOnFirstWrite to wrap an optional<T>.
Update SkTCopyOnFirstWrite to wrap an optional<T>.

Previously, this wrapped an SkTLazy<T>, but in C++17, SkTLazy is just a
thin wrapper on top of std::optional. This CL removes the middle-man.

Change-Id: I78f88d24a7933dfac4b637367a3d1e7ee80b3070
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/519622
Auto-Submit: John Stiles <f4fcf42d3bb5924557f1eeb3be66747535e585da@google.com>
Reviewed-by: Ben Wagner <53965154ffeecc4a10886eab9259e95965f2979a@google.com>
Commit-Queue: Ben Wagner <53965154ffeecc4a10886eab9259e95965f2979a@google.com>

google/skia,google/skia,google/skia,google/skia,google/skia,google/skia,google/skia,google/skia,google/skia,google/skia