Adds new classes and improves JavaDoc, object usage and logging.

Adds classes that helps with strings, reading streams and with licenses
and a class that holds informations about the program.