Corrections to unigram MLE probs and others

A major error and cause of the log value errors due to negative weights
was incorrect unigram MLE probabilities in generateLM.py.

This was exposed by finding that the wordPML sum was well in excess of
1, causing the denominator in weight calcs to be negative and therefore
the weight sometimes negative.

P_ml was being done as count / numUnigrams. Now P_ml is the correct
count / numTokens.

Another correction was that in testLM.py, P_gt for unseen vocabulary was
incorrrect. We now find GTn0, which is V^2 - numBigrams, and P_gt unseen
= GTn1 / (GTn0 * GTn).

The weight fix now results in perplexities using hw2_train and hw2_test
of about 52, closer to that of what is expected. I have yet to test with
unseen vocabulary.

TODO: Test on other data sources with unseen vocab in test sets.

TODO: Add cross-validation and trigram model option.