Fix bugs in Step 1b and ends_with_double?().

I started using some test files of vocabulary input and the
corresponding expected output at this site:

http://snowball.tartarus.org/algorithms/porter/stemmer.html

Loading up the file and using my stemmer on the vocabularly and then
comparing the output with the correct output with the file is finding
some failing cases.

Initially, I was getting a success rate of:

(1 - 1508 / 30428) = 0.9504403838569738

Some words like "sunned" were incorrectly getting stemmed as "sunn".
Part of the problem was that I wasn't catching the returned word from
the step methods. I had noticed that Ruby seems to pass string by
reference, but for some reason, "sunn" wasn't being "sun" at the end
of step_1b(). Explicitly catching the returned word seemd to resolve
this issue.

Somewhat surprisingly, after that fix, the succes rate actually went
down:

(1 - 2406 / 30428) = 0.9209280925463389

I noticed some words like "abashed" were getting incorrected stemmed as
"abas" with my stemmer. It turns out there was a bug in the regular
expression I had created for the ends_with_double?() method. It appears
it was detecting when a string ended with two consonants, but wasn't
requiring that those consonants be the same. I believe that I've gotten
this resolved using backreferencing.

With that fix, the success rate has gone back up.

(1 - 724 / 30428) = 0.9762061259366374

I also added some boolean switches to turn on and off some of the
debugging code and test cases code, as well as to switch between
manually accepting a word to stem or stemming the test files.

Also, I observed that stemming the test file takes a little bit of time
and I should probably start looking into ways to make things more
efficient.