Fixes and Updates

The ranking function seems to have some problems. For example, when it
see a phrase like "string work", it checks the stored keywords. Assuming
there  were two keywords, "string" and "strings", the ranking function
does not stop once it has seen "string". Instead, the function continues
to read until it has read "stringw", which is not a match. As a result,
the rank function will assume that there were no matches in that phrase,
outputting an incorrect rank value.

Updates:
- Removed words in the keys.dat file that began the same as another
word. Ex: "texts" was removed but "text" was kept.
- Added a sample SPAM message named "spam.txt" for testing purposes
- Added the file input test functions written by Edward