Properly deal with FreeType cache flushing a font's ft_size. Set this
to NULL in finalizer, and add a blf_ensure_size to make sure it
exists only when needed.
Current code uses FreeType caching, which ensures only a limited number of faces and size structures are loaded simultaneously. Unfortunately this means that a font's size can be removed without us knowing. We deal with face removal properly but not size removal. This change properly sets the font->ft_size to NULL when it is removed by the cache. It also adds a blf_ensure_size function that just passes through if the font_ft_size exists, but requests and points to a new one if not.