Initial work to refactor Task
An attempt at modularization prior to moving things towards BaseObject and considering Attributes.
Merge branch 'refactor_pass' into devel