[base] Add SkBezierCubic::subdivide

This extracts SkDCubic::chopAt [1] into base and tests to
make sure the two implementations are identical. This also
adds documentation.

It's not clear to me if the "t == 0.5" conditional in the
original is a "fast path" or something for float precision
or something else. In any case, there is no explanation and
no unit tests that fail, so maybe it's ok.

[1] https://github.com/google/skia/blob/8106368d1f70d24e612afe7f6de8b6e6d1c6dd27/src/pathops/SkPathOpsCubic.cpp#L110

Change-Id: Iaa71b42b0b0b78259254711b54e8188c68fee63f
Bug: skia:13983
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/632583
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
6 files changed