[5.0] Improved The Str::snake Function

The old way of snake function dealing with continuous capital letters is wrong:
```php
$string = 'LaravelPHPFramework';
echo Str::snake($string);  // Output content: "laravel_ph_pframework"
```
After repair:
```php
$string = 'LaravelPHPFramework';
echo Str::snake($string);  // Output content: "laravel_p_h_p_framework"
echo Str::snake($string, '_', false);  // Output content: "laravel_phpframework"
``
I think it can make the "LaravelPHPFramework" converted to "laravel_php_framework", But will make this function is not so simple.