Allow creating tasks with tags

When creating a task using `Task.new()`, specify an iterable of `Tag`
objects to have those tags added to the new task.
Add a "recurring" tag to recurring tasks

When creating a recurring task (either when it recurs or when creating a
new recurring task), add a "recurring" tag to the new task, creating the
tag if it doesn't already exist.