ENH: Better text rendering

Implements @rougier's suggestions for sharpening text rendering at large scales, and making it more robust at smaller scales. I also checked, and our size conversion is correct so long as the DPI is correct (currently fixed at 92 in the Text visual).

Ready for review/merge.

Closes #426.
probably using push_viewport / pop_viewport makes more sense?