Enhance amount painter draw algo

Rather than using hardcoded black/white values, we fetch values from
`option.palette`. Also, we draw a background before drawing the text.

ref #407