Added documentation

Documentation on the program itself and the different data structures
that are used.