Improve the way interface fonts are assigned

Instead of a thousand individual functions performing isVistaOrLater
checks, now only one check is applied at the start of the program.
Other functions can access the desired interface font via the new
g_InterfaceFont string.
Apply Kroc's Ambient.UserMode fix