A semi-implicit, semi-Lagrangian, p-adaptive discontinuous Galerkin method for the shallow water equations