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

As a general rule, you should listen for preference changes. It's not as obvious in this case, because we have actual UI for these preferences. But, I just deleted some of the settings from my preferences file and the changes don't take effect until I reload because there's no listener here.