Branch-Solve-Merge Improves Large Language Model Evaluation and Generation