This abandons field-by-field compatibility with the TaskWarrior TDB2
format, which wasn't a sustainable strategy anyway.
Instead, tasks are represented as a TaskMap with custom key formats. In
this commit, there are only a few allowed keys, with room to grow.
Replica returns convenience wrappers Task (read-only) and TaskMut
(read-write) with getters and setters to make modifying tasks easier.