Fix rdoc task definition

Set main to a directory relative to root

Set extra options from ruby trunk's rdoc make rule
Fix and refactor dependencies

This adds a directory task which clones the repository (for use by the
rdoc task) and refactors the other dependencies to use it.

This removes the :all tasks in favor of a top-level task which
accomplishes the same thing.

This removes extra dependencies between the all task and the individual
tasks (which already have such a dependency).

This replaces the duplicated "sources/#{version}" with source_dir