Fix bug with formatting of number in NumberExpression when running with a locale that does not use dot (.) as decimal point

This problem occurs because ToString will use the default locale.
When running with e.g. Norwegian language formatting locale in Windows, the decimal mark is comma, which causes the relevant ToString to print a number as "1,0" instead of "1.0".
This commit fixes this bug by using CultureInfo.InvariantCulture to provide ToString with a IFormatProvider that prints numbers correctly for opencl kernels.