Added optional parameters to the 'limited_Riemann_upate' function to allow CPU time step setting and decision. Controlling exact timing and CFL condition monitoring can now be done from the CPU. If the optional arguments are not used, the GPU checks the CFL condition and computes a time step, and just evolves the solution using whatever time step the computation returns.