added documentation for tasks

I found it difficult to develop a `Task` without reading through the source, so I thought it'd be helpful to add some documentation.