Rename phony rules to tasks.

This is a less obscure term that doesn't assume familiarity with
weird Make conventions.
Support fallback tasks.

A feature similar to Make's `.DEFAULT` target. The idea is
that this can be used to implement help messages and such.
Fix the waiting logic on a recipe error.

Just a simple pattern matching bug.