make cost optional; default to word length
refactor spellbreaker

no state needed; make it a module rather than class
don't slurp the file into memory
process the words as you iterate over the file
compose the different generation rules randomly
continue chaining if rand(2).zero?
raise, don't abort
use new Misspell interface