Non-iterative, non-linear Riemann solvers for the shallow water equations