Improving Metacognition and Uncertainty Communication in Language Models