Created a new class called ShallowWater that helps to modularise the shallow water model.
Added docstrings.
Use "FacetNormal(self.mesh.ufl_cell())" if backend=="firedrake", otherwise use "FacetNormal(self.mesh)".