Rename function to obtain a task by its ID.
Reverse relation to denote a task and its dependencies.

Previously, the child task would get an ID assigned and the parent task
would refer to it. Now it's the other way around: the parent task gets
an ID and the dependency refers to it's parent using the 'p' tag. The
'dep' tag is no longer used.

The problem with the former situation is that when you complete a
dependency, its ID would disappear from the todo.txt. When adding a new
dependency elsewhere, the task would get assigned the ID you've just
thrown away. And there are still parent tasks lingering around to this
task.

The current scheme works better, assuming that you finish (or delete)
subtasks before you finish the parent task.
Add override for the do subcommand.

This one can also mark subtasks as done, if present. When in
non-interactive mode, the do command will not touch subtasks.

For this to work, the todo structure has been extended with the 'num'
property, containing the task number as identified on the CLI.
Increase abstraction w.r.t. tags in the scripts.

Don't read the tags manually, let the TodoTxt.pm module handle it.