Splitting the index by the first letter of the words

Now the index layout is really similar to the haskell version.
The index is an array where each position represents a letter and
contains a hash-map with all words on the vocabulary which starts with
this letter.
Explicitly creating threads instead of futures
Adding logger