Setup some JUnit Tests. Tested DictionaryGenerator. Revamped class layout and abstracts

Removed some redundancy in classes and made them hopefully more
self-evident.