The previous behavior was giving a completely negated matrix
if any of the object's original scale values was negative. Restore that
behavior here.
---
The documentation for the scale extraction says that allowing negative
scale is an expensive operation (since it involves computing the determinant),
so there's a chance this isn't worth it.