Fonts api with Themes integrated

Fixes:
https://github.com/adobe/brackets/issues/8425
https://github.com/adobe/brackets/issues/8381

References:
https://github.com/adobe/brackets/pull/8305

Nit: It seems to me that these nodes will always exist (after they're initially created), so we might as well just add them once and change the contents, rather than adding/removing them.

That's a nit, though, because I don't think there would be any functional difference and any performance difference is irrelevant in this context... I wouldn't block landing for that.