Implement underline drawing

I have implement underline drawing in all four text renderers. It also requests some modification to the pango renderer but I'm not familiar with it and hope I didn't cause any memory leak ;)

A patch to libtsm is also needed to resolve the problem that it doesn't handle underline correctly, using same id for both underlined ch and normal ch, which causes wrong glyph to be returened due to cache in font renderers. 
Patch: https://gist.github.com/Aetf/2fd631689a210afb25a7

I didn't test all the four renderers but at least one should work and I can't figure out which oue I'm currently using. Others should work as well though as the logic is same.