Documentation

We really need some documentation, so I started adding some. If anyone else wants to take some other parts, that would be great, as there is a good bit to write.

I will be adding a bit more to this as I go, or if it gets merged I will just make another PR, but the goal (at least I think it is a good goal) is 100% documentation for everything.