* Look for both system fonts and user fonts on Windows
* Move repeated font registry reading code to separate function
* Pass the files vector to read_fonts_from_key as a reference
* Allocate a larger filename buffer when necessary while reading fonts from registry
This significantly improves performance by avoiding the need to
construct std::strings of the things to be hashed, eliminating a bunch
of memory allocations and copies.