VersionComparator - compare the parts of two version strings.
Technique.
* Split the version strings into parts by splitting on "-._"
first, then breaking apart words from numbers.
"1.0" = "1", "0" "1.0-alpha-1" = "1", "0", "alpha", "1" "2.0-rc2" = "2", "0", "rc", "2" "1.3-m2" = "1", "3", "m", "3"
compare each part individually, and when they do not match, perform the following test.
Numbers are calculated per normal comparison rules. Words that are part of the "special word list" will be treated as their index within that heirarchy. Words that cannot be identified as special, are treated using normal case-insensitive comparison rules.
@version $Id: VersionComparator.java 1171418 2011-09-16 07:42:25Z olamy $