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.
`File`, `IO`, `Path`, and `System` are now imported in scripts.
F#: Join the sources list together as a string before using it.
Allow omitting argument patterns in rules/tasks/fallbacks in some cases.

Also clean up the code to remove a ton of duplication.
Fix the order of arguments passed to tasks.
Bump version to 0.3.2.