Adds logtime decorator
Makes a report form

*will enable report to later take a dictionary for each trial
*changes linear search and trie build to only accept one file at a time
Restructures benchmarking suite to make it more generic

*limits benchmarking to two functions with the same input

*changes parameters for benchmark and report functions
*logtime decorator is phased out in favor of timed function

*log is now a list of lists, where each sublist represents the record for one trial,e.g.
	log[i] = [(file,word1),[time(fn1),time(fn2)]
	log[i][0] = inputs (type=tuple)
	log[i][1] = time to run each fn being tests (type=list)
Adds corpus class

*eliminates original wordcount and wordfrequency functions
*makes values returned by wordcount and wordfrequency attributes of the new corpus class

Notes:
*does not yet actually build a corpus from the input (self.source and self.value are separate)
*will incorrectly handle files/input because no file I/O has been built in
Adds a dictionary to list of corpus files
Removes setup and cleanup functions from use_letter fn. Must now be called separately
Adds complete works of shakespeare to the corpus as the file shakespeare.txt
Adds a file to the .gitignore
Adds trial parameter to the report function

*Moves all summary printing to the report function
Adds winner and wintime to the report
Changes tokenize's return value to a generator
Adds corpus class

*makes benchmark.py compatabile with new corpus class
*changes return value of: get_files(),wordcount,frequencies
*changes parameter accepted by: tokenize(),wordcount,frequencies
*changes function names:  word_frequency => frequencies

TO-DO:
- decide where frequencies, wordcount & linecount should reside