factor out tasks to Rivet.Tasks, rules to Rivet.Rules, and add a 'tasks' command that prints out list of tasks (manually updated, at least for now)