Translate-and-Revise: Boosting Large Language Models for Constrained Translation