Implement special-case DAO node for graphing
Streamline CI build

- Cache Debian packages
- Use single script to do CI build and fail-fast
Implement StagedWrite helper class
Improve component cache IO logic

- Write to temporary file first, so existing files are complete
- Automatically ignore (with warning) corrupted cache entries
Use StagedWrite in the pack task