font: Rethink the font API to improve performance. Updates issue #1.