save and restore context for Tooltip drawing

When I calls fillText at the end of Chart.Doughnut draw function, the text always moved after the tooltip disappeared. Then I found out the drawing context in showTooltip was not cleaned after disappear.

So I add save and restore to keep their context independent