Implement counting algorithms with more efficient data structures
Implement counting algorithms with more efficient data structures

 - wordSet, wordSetDoc are useful for constructing word sets (aka.
   word lists) of the unique types in a document.

 - countWordSetElem is implemented in a sub function, countWordSetElem.
   This subfunction uses pattern matching to handle the cases of the
   empty set and empty list of T.Texts. This function also uses some
   of the tricks to pair down the Set and List of T.Texts.

 - Cleaned up some variable names and function names to make them
   more clear.

R-Morgan/NGramCrackers