defined class CatalogTask

replaced task dict with CatalogTask, which:
- has task properties as attributes
- also allows for accessing task properties with ['property'] syntax for backward compatibility
- open_task_log() method