Further refactoring of the gpp module

Integrated the refactoring with the rest of pyke removing the old
factory method from the builders package.
Refactored the g++ dependency method

The dependency method is no longer restricted to two levels of of
inspection, it should now create a full dependency tree.
Tidied up dependency regex for gpp builder.
Removed the object_directory method from gpp.

Removed some functionality which was being replicated elsewhere so it is
now just a property on the class. Refactoring of the Target class to
accomdate this and to tidy up the clean method a bit.
Added tidy up functionality to meta.Target.

Updated the meta.Target so that it can now remove the files which are no
longer part of the project so over time cruft does not accumulate in the
meta file.
Removed unneeded import.
Renamed the compiler field on Target

Renamed the compiler field on the Target class to the more generic
'builder'.
Renamed path to meta_path on File class

Replaced the path property on the File class so now it gets the
directory that the build file is in and moved what was in path into meta
path.
Moved setting the directory to Target

In order to make Pyke embeddable in other applications the setting of
the current working directory has been moved into the target where it is
set and reset before any clean, build or dependency generation
functionality is run.
Added the gcc compiler.
Added cli functionality for listing builders
Updated the description.