Documentation generation
Created by: zain-sohail
#32 (closed) suggests to implement an automated way for documentation. So far, it is automated to the level of each module within the package. We need to manually add an rst file for each module that is added. I have automated the arg types so that typehints are used to automatically include that information, as well as the default values. One thing to keep in mind is that the return docstring doesn't support multi value output so it has to be wrapped within a tuple.
The matplotlib dependency is also within the pull request.