Create custom Task class that has `todo_attr` helper method, and adjust TODOs to reflect upstream patches
Move formatting onto the `Task` object. Don't import the `task` module as named as that's confusing to `task` local variables
Move all priority string handling into the Task class
Priorities actually need tobe strings
Change order of priorities to match todo...
Rename `todo_attr` -> `todo_getattr`
Implemented `todo_setattr` rather than fiddling with `obj.value` the whole time
Added helper properties for status, priority and summary
Moved task construction to classmethod on `Task`
Take advantage of being able to set `event_cls` and `calendar_cls` to not have to recreate `Task` objects