Add tests for prereq and support providing a target to test against for stale/freshness.

You can do:

  @task
  @prereq('foo.txt', 'bar.txt')
  def my_task():
     sh('build foo.txt')

This will test if bar.txt is newer than foo.txt. If the target of the
prereq is older than the last result (bar.txt) it will run the
task. Otherwise, it will skip it.