Add NumberFormatter::formatNumberToLocalizedText

Move code from `smwfNumberFormat` to `NumberFormatter::formatNumberToLocalizedText`
in order to cache message text (especially costly when used on a repeated basis).

Before
```
- (0): [[Has subobject.Has temperature::100 °F]] 
- C: 0.0027824 (mean) 0.0139122 (total) 0.0050724 (sd) (sec) resultCount: 1001 columnCount: 0
- S: no serialization
- I: 0.0094004 (mean) 0.0470018 (total) 0.0022846 (sd) (sec) resultCount: 500 columnCount: 8
- S: 0.842563 (mean) 4.212815 (total) 0.0127321 (sd) (sec)
------------------------------------------------------------------------------------------
- (1): <q>[[Has page.Has number::1001]][[Has page.Has telephone number::+1-201-555-0123]]</q> OR [[Has subobject.Has temperature::100 °F]][[Category:!Lorem enim]] 
- C: 0.0414686 (mean) 0.2073429 (total) 0.0043786 (sd) (sec) resultCount: 2002 columnCount: 0
- S: no serialization
- I: 0.0486034 (mean) 0.2430172 (total) 0.0006431 (sd) (sec) resultCount: 500 columnCount: 8
- S: 0.8097425 (mean) 4.0487123 (total) 0.0485891 (sd) (sec)
```

After
```
- (0): [[Has subobject.Has temperature::100 °F]] 
- C: 0.0027912 (mean) 0.0139561 (total) 0.005127 (sd) (sec) resultCount: 1001 columnCount: 0
- S: no serialization
- I: 0.0095984 (mean) 0.047992 (total) 0.0022553 (sd) (sec) resultCount: 500 columnCount: 8
- S: 0.6628716 (mean) 3.314358 (total) 0.010816 (sd) (sec)
------------------------------------------------------------------------------------------
- (1): <q>[[Has page.Has number::1001]][[Has page.Has telephone number::+1-201-555-0123]]</q> OR [[Has subobject.Has temperature::100 °F]][[Category:!Lorem enim]] 
- C: 0.0434748 (mean) 0.2173741 (total) 0.0051097 (sd) (sec) resultCount: 2002 columnCount: 0
- S: no serialization
- I: 0.0507008 (mean) 0.253504 (total) 0.000662 (sd) (sec) resultCount: 500 columnCount: 8
- S: 0.671049 (mean) 3.3552449 (total) 0.0600068 (sd) (sec)
```