CHOLMOD cleanup (#29462)
* CHOLMOD cleanup
Fixes #29367, and cleans up by removing a lot of unneeded code.
* Use regular (non-long) suitesparse calls on 32-bit
This keeps it so that `itype` will be `INT` on 32-bit and `LONG` on 64-bit.
* make itype consistent across all types
* allow pattern factors, use nothing for default permutation
* fix naming error, remove more code, don't return new object from change_factor! to avoid potential memory leaks
* fix check logic
* simplify promotion
* fix function call
* update tests
* tests now throw different errors
* Hopefully fix 32-bit issues by switching back to SuiteSparse_long
* Don't expand index type
* add test for ldlt