Added substantial documentation

I added substantial documentation to the best of my knowledge, this can help and the documentation is in javadoc format so it's documentation to any other developers, as well as users looking over the source for answers and allows you to run javadoc and host the output. You also might get more developers because documentation in the source now exists.