St Helens score 28 unanswered second-half points to win at Bradford Bulls and move up to fourth in Super League.