TextFontFactory reuses existing fonts

Hi all, I've been using shoes to make an interactive list of ~100 entries (not exactly what shoes is meant for but oh well), when this runs on Windows and I scroll down the list it crashes with this error;

    java/lang/reflect/java/lang/reflect/Constructor.java:408:in `newInstance': org.eclipse.swt.SWTError: No more handles
        from .../shoes4/lib/shoes/swt/text_block/text_font_factory.rb:19:in `create_font' ...

It seems to happen because too many fonts are created at the same time, so I've updated TextFontFactory to reuse existing fonts rather than make lots of identical ones, which fixes this (probably rare) issue.
Readaibility/code style wise I think I'd be happier if this was an extra method somewhat like `reuse_existing_font` that returns a font to reuse if possible or nil if there is nothing to reuse. That could also use `find` to be more ruby-ish :) Then for a value of nil the method would continue normally...

kind of like:

```ruby
font = reuse_font
font = new_font unless font
```

Or something like that.