Northampton Saints extended their Premiership run over Bath with a seventh straight win when they beat the West Country side 31-24 at Franklins Gardens.