Add regular expression based localization to PeriodFormatterBuilder

Add regular expression based localization to PeriodFormatterBuilder and PeriodFormat. Add Polish locale to PeriodFormat. Add tests.

Some of the languages have more complicated rules regarding suffixes than 1->singular "not 1"->plural. The current implementation and current set of available properties in messages_locale.properties files does not allow proper localization for languages like that.

For example in Polish (
"1 year, 2 years, 5 years, 12 years, 15 years, 21 years, 22 years, 25 years"
translates to
"1 rok, 2 lata, 5 lat, 12 lat, 15 lat, 21 lat, 22 lata, 25 lat").
Notice 3 different suffixes.

Rather than implementing logic that describes the rules for that one particular language, regular expessions are used to match value to suffix so that new translations can be introduced by creating new messages_locale.properties file.
The above case can be solved with:

PeriodFormat.regex.separator=%
PeriodFormat.years.regex=^1$%[0-9]\*(?<!1)[2-4]$%[0-9]\*
PeriodFormat.years.list=\ rok%\ lata%\ lat


When given locale does not require regular expression the standard (slightly faster) implementation is used (see messages_pl.properties for an example with mixed properties).

Each properties file can use different regular expression separator.

List of all new available properties:
PeriodFormat.regex.separator
PeriodFormat.years.regex
PeriodFormat.years.list
PeriodFormat.months.regex
PeriodFormat.months.list
PeriodFormat.weeks.regex
PeriodFormat.weeks.list
PeriodFormat.days.regex
PeriodFormat.days.list
PeriodFormat.hours.regex
PeriodFormat.hours.list
PeriodFormat.minutes.regex
PeriodFormat.minutes.list
PeriodFormat.seconds.regex
PeriodFormat.seconds.list
PeriodFormat.milliseconds.regex
PeriodFormat.milliseconds.list

*.regex consists of regular expressions
*.list consists of corresponding suffixes

Tabs are evil and have no place in source code. See how it messes up the diff...