Fix OpenSSL version parsing for craziness in 0.9.8

In OpenSSL 0.9.8 after `y` they went to `za`.  I can only assume that they're then going `zb` rather than `zza`.  This change encodes the new apparently-undocumented information about how to treat such numbers.

I've also added a tool to let the logic be tested independently of nginx.

@klobucar @derekcollison @cee-dub