Documentation

Adds docstrings and a first draft of a user manual.
Let's get rid of it now. 
It might be nice to allow the user to disable cache but, by emacs conventions, the most intuitive way of doing that would be to set the cache dir variable to nil. We don't need an extra var for that.