v0.4.2 Making progress towards v0.4.0 goals. - Functions are moved from projected_gradients to matg_gdm. - Both have identical return types, although matg_gdm does not take desired_gap as argument. - test_scale_invariant ensures that the solver can handle rewards in [0,\infty). This was a really interesting bug in ExtendNE. - API cleanup has also been done: removing unnecessary `num_actions` argumetns when they can be deduced, especially in utils.py. - algorithm.py has also been cleaned up; intermediate functions have been removed/inlined when needed, stray jit calls have been pruned. - some more use of jaxtyping as well. TODO: - Experiments and benchmarks are broken, might need fixing later. - Consider wrapping all algorithm parameters in chex DataClasses. - Expand the test-suite.