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

I realize that `restore` is not new, but I wonder if it's actually useful? Maybe we should just delete it?