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

Oh yeah man, we can definitely reuse the same nodes.  I tried to keep as much of what was there as possible.  I changed quite a bit of code as it is.