- fixing `TaskBase.__call__` so `submitter` is not overwritten
- improving `checksum_states` so it doesn't calculate the content hash of big files for multiple times (using `files_hash` that keeps track of all the files)
- removing output after task is run to save memory
- adding `Directory`, `int`, `float`, `bool`, `str`, and `list` to the types allowed by `output_spec` of `ShelloCommandTask`.
- adding python 3.9 to GA
- fixing GA singularity workflow