Fixed incorrect behaviour in Str::snake

Str::snake("TestHTMLTranslator") returns "test_ht_ml_translator'"
Correct output should be: "test_html_translator"

I've also attached a test case for this.