Fix Cholesky Types

This involves adding a check to ensure that we never take the square root of a
negative number. This amounts to a last-minute positive definite check. I'd
rather do this than actually check for positive definiteness because I don't
know if Typed Racket will realize that positive definite implies the entries
will never be imaginary numbers