Use appRoot as basic auth realm
Utils for error handling with ErrorT / MaybeT
Nicen nested conditionals in basic auth using ErrorT
encapsulate deleteTask
Tasks can have an ExtTask, displayed in the task list
don't leak ExtTasks when deleting their Task
Allow finding extTask directly from a NewExtTask
API can sync tasks from external sources
Update ExtTask properties when POSTing existing extTask
Nicen nested conditionals in sync API using MaybeT
Sync and display external status
GET /api/ext_tasks/jira to get user's Jira tasks