Add custom number_format function

number_format takes three parameters (value, ISO639LangCode, pattern) and formats the value accordingly.
It is used like this: ${number_format(12345.6789, 'en', '#,##0.00')}

Discussion:

1. defaults: I purposely did not include default values for langCode and pattern so that the user has to think about these values and has to set them manually - adding defaults is obviously up to you.

2. error case: I decided to output a quite long error message in case of an error. This may or may not clash with your style standards. I wanted to keep my changes in one spot (except for the imports, obviously) so that it is easier to see what happens.
fixed subt() function
merged conflicts and re-formatted patch