Simplified the FoundMode by having the condition function return a Bool.

I decided that having it return a Maybe with a different
type from the Tree value was not likely to be all that
useful in practice while making the use of FoundMode more
complicated.
Moved Purity into a separate module so that users don't have to import Worker.
Fixed glitch in the package documentation.
Realized the much of the content I was writing was better for a User's Guide.
Tweaked Threads functions to move the Tree to the end.
Now the Word_ module is no longer hidden.
Now Main exports RunStatistics.
Now Threads exports RunOutcome, RunStatistics, and TerminationReason.

This was done to keep consistent with having the adapters
be one-stop shops.
Now changeNumberOfWorkers uses Words instead of Ints.

This was done to enforce that the number of workers will
never be less than zero.
Now Failure also returns the progress.

I was against having this feature because the progress
should *not* be re-used if the Failure was caused by a
bug.  However, while writing the tutorial I realized that
a failure need not be due to a bug but could be due to a
resource becoming unavailable --- e.g., a database
connection being lost --- and in such cases resuming the
run after fixing the issue won't create any problems since
the fault was not in the program itself;  in fact, an end
used might be very annoyed if they lost the entire run
just because a database server needed to be restarted.
Removed non-existent imports from Worker.
Rank2Types --> RankNTypes

This was done because apparently Rank2Types is now a
deprecated synonym for RankNTypes.