Text extents

(Most of the commits are old and irrelevant; just the commits after merging from you are new.)

Sorry; I left a bug in here last time around.  Width was having start_x
subtracted from it inappropriately.  Fixed.

As it turns out, it appears that start_x and start_y are irrelevant parameters
to this function.  I didn't remove them though as they're in vgft.h and it's not
clear whether external clients are allowed access to this interface.  I marked
them as unused.