Sale edge out Harlequins for one-point win