Base implementation for tries

- Node class for generic tries
- function for generating prefixes
Adds capacity to make a prefix tree from a corpus

- adds function to print all terminal nodes in the trie

Bug Fixes:
- fixed terminal-node flag for insertion
Adds autocomplete function

- Adds find function (to return the node that matches a given value)
- Need to refactor find to make its return callable
Adds pretty-print method

*changes the name of the function to split a file
*pprint function returns a string (which must still be printed)
Restructures code in several ways:

*adds collected works of shakespeare as default corpus
*substitutes a function from the keypress module for prior curses
 functionality
*redefines 'isEnd' as a quality only applicable to words as
 they exist in the corpus
*refactors the function find for clarity of reading
*renames the 'get' function to be 'get_child' (indicating that
 searching is limited to the children of the current node )
*re-orders functions for clarity
Adds clean-up function to return terminal to normal state

*adds clean-up function to keypress module
*adds cleanup action to the body of __main__
*handles keyboard interrupt as normal functioning
Improves UI

*adds color highlighting to autocomplete
*tells user when they enter/exit autocomplete
Adds corpus test files & bug analyses
Adds documentation

*shifts autocomplete fn out of the node class (accepts a corpus as arg)
Places all sample corpus files in corpus directory
Adds file to .gitignore