Task

Generic implementation of tasks, which are units of work with prerequisites and dependencies, which can succeed, fail, and be retried.

- [x] Provide basic implementation of `TWTTask` and `TWTTaskGraph`
- [x] Document classes
- [ ] Add ability to tell if an entire task graph completed successfully or failed.
- [ ] Write automated unit tests