ENH: Better text SDF calculation

This improves the SDF calculation a little bit. Ready for review/merge from my end.
Because I was getting an error `np.ndarray has no property ._activate`, which is quite cryptic. In my case, it was because I never set `program['texture']` (I guess the default is somehow `ndarray`). This makes it clear the real error is that some texture can't be activated. We should probably add a better/clearer check higher up in the process, but I wasn't sure the best place to put it. Make sense? (This is also why we should probably have more `gloo` unit tests...)