[basic-win32] Increase performance of Uniscribe code
A few weeks ago I reported a performance issue regarding the use of
Uniscribe in the win32 basic shaper.
It turns out that the issue was with the use of Uniscribe's
SCRIPT_CACHE. Despite the name, this value is for caching
per-font-plus-size values, not per-script values. See:
http://msdn.microsoft.com/en-us/library/
dd317726(VS.85).aspx
Since shaping occurs on runs containing a single font, we only need
one SCRIPT_CACHE in uniscribe_shape. I'm including a patch below that
does this. With the patch applied, the time for one of my tests went
from 20s to .3s.