Use auto-wiring to connect up the compile and link tasks for a binary.
Don't use fully qualified names.
Removed Project from the constructors of DefaultExecutable and DefaultLibrary.
Added toString() implementations to the NativeBinary subclasses, to fix up the output of `gradle tasks`.