refactor generation to a new class

I thought it would be fun to refactor some things after I read [danneau's comment on reddit](http://www.reddit.com/r/ruby/comments/16ufgk/i_built_a_gem_that_makes_tokens_a_little/c7zlzs3). I tried to keep the same API from the readme, but some of the details of implementation differ slightly. I might try to update the readme later, and add some tests, but I thought I would share what I have in case I don't have time for more.