Implemented new ToLowercaseUnderscore function in StringExtensions due to recent changes causing backward compatibility issues.
Digits are grouped as if they were words while still being delimited by an underscore from preceding words. This matches implementation from previous versions.
Added tests specifically for the ToLowercaseUnderscore method as these were missing, and can check for breaking changes in future revisions.
Added tests for Json parsing to ensure that the new method works as expected.