Documentation

This is my attempt at adding some documentation, it's far from complete so please don't merge it without a second thought.

I would like you guys to discuss my documentation and suggest better ways of wording something, or correct grammar mistakes.(I've made a few, I am sure of that)

Some classes are not documented yet too, so if you want you can do those.