Extract the double-precision cubic and quad solving code to base.

Based on https://github.com/google/skia/blob/787feb9bce958b384ed5ac3540f66ccee995799f/src/pathops/SkPathOpsCubic.cpp#L379

The unit tests have been updated to test both the existing
and new implementation. A follow-up CL will have Pathops use
this new code.

Change-Id: I9a134fef9e3e28aff64922a1507f4ffa2a27bb2a
Bug: skia:13983
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/631996
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
9 files changed