Configuring printVersion task.

Added the task to a group called 'versioning' and included a
description.
Added project dependencies

Initial sub-project dependencies.
Refactored versioning.gradle

I implemented a class ProjectVersion to hold the state of a project's
version. I also added a configuration task called loadVersion. This
task will be executed durring the configuration phase of the build
and will initialize project.version to an instance of this new class.