* Add t-SNE implementation and tests for dimensionality reduction
Implemented the t-distributed stochastic neighbor embedding (t-SNE) algorithm in dimensionality_reduction.py, including input validation and a test function.
* Fix Ruff linting errors E501 and EM102 in t-SNE implementation
Resolve line length violation (E501) and f-string literal in exception (EM102) by splitting error message and using variable assignment.
---------
Co-authored-by: Christian Clauss <cclauss@me.com>