A physics-based energy function allows the computational redesign of a PDZ domain