Implement RK4 solver
- This solver should be able to support batch of initial states with variable time-steps.
- Initial state is either a torch Tensor or a TensorDict.
- Currently implemented simulators sould be modified. Potentialy we can have a flag to switch between our and torchdiffeq implementations.