Calculate a very accurate discriminant

Calculate the discriminant in the ordinary manner. Check
for too much cancellation if B^2 and AC are too close.
If they are too close, then track the rounding error while
recalculating the discriminant, and add rounding error
back in. Tests included.

Change-Id: If2a04eb5c663ffe05aa90df9116796bc5f5d7a64
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/703078
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
3 files changed