cleaned up font matching

- with the override table generally filled there are now two modes of matching:
   1. by name (from the descriptor or override table)
   2. by doing a matching descriptor search
- when creating a descriptor from a font with slant matrix this also gets the italic trait
- much renaming and made clearer what is happening
implemented async loading of available fonts
closes #406