Fix bug in SC::Generator#snake_case

The snake_case method would transform "LOGGED_IN" into "logge_d_in".

The first commit adds a spec for the method, taking examples from the comments. The second commit fixes the bug and adds a test to the aforementioned spec.