Replace Eigen type metaprogramming with corresponding std types and make use of alias templates
This MR removes a bunch of metaprogramming facilities in eigen in favour of their std versions. It also replaces
typename type_trait<X>::type with type_trait_t<X> for these types. (Overall, this reduces the number of such constructs, typename .*::type, from about 2000 to 1300).
I've run the test suite on CPU, but not on other devices. Given the large amount of small changes that look extremely similar, I think it would be good to also run extensive tests on CUDA and SYCL before merging.
Edited by Erik Schultheis