Riemann Solvers and Numerical Methods for Fluid Dynamics: A Practical Introduction