Fixes bug where null words are sometimes created

I encountered some instances where I hit the end of wordlist before attributesFor() was called to reset it. This happens if count($static_vars['factory']) > count($this->wordlist) when count($this->wordlist) != 0 and $static_vars['factory'] doesn't contain additional factories that would cause attributesFor to fire. 

For example, if there are 2 words left in the wordlist, the wordlist won't get reset as count() != 0, and if the current $factory array has 3 words, on the 3rd word a null value will be generated.

This change moves that responsibility of fetching a word to a getWord method, which always checks for count of wordlist before using it.