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.
...and actually we can probably just use `array.tostring()` and `np.fromstring()` without using `base64` at all, not sure what that would buy us here.