Split up taskgroup.coffee into individual files

This splits each class into its own individual file, and introduces an *index.coffee* to define the structured output of the package.

* Task.coffee
* TaskGroup.coffee

Another benefit is that Task and TaskGroup now manage their own dependencies, rather than sharing import dependencies together.