Extract new concept of a BuildProductTask

BuildProductTasks are proxy tasks for a backing file task that is
relative to a configurable build products directory.
Rename GroupTask => ProxyTask
configuration: move module_intermediates_dir to instance method
Extract object file compilation into new tasklib
Refactor DylibTask as a task lib
Refactor ObjectFileTask to derivce from BuildProductTask
Remove unnecesary include
Update BuildProductTask description
Build swiftmodule files in Build/Products
Rename HelloRake to bin/hello
Build object files relative to Build/Intermediates
Refactor ProxyTask to be a conrete Task subclass instead of a mixin
Delete no-longer-used Configuration#resolve_build_intermediates_dir
Merge pull request #1 from sharplet/swiftmodule-build-location

Output build artefacts relative to Build/