Changed ToolSearchPath so that it understands cygwin symlinks and removed the special case GccToolSearchPath.
Moved creation of GCC version detector into a service that is injected into the GCC plugin. This will allow the results to be cached.
Changed GccToolChain so that it detects GCC version for each target platform, rather than once for all platforms.
Unit test fixes
Calculate the version of each GCC binary once per build and reuse the result for all projects.
Pushed detection of compiler version down to AbstractGccCompatibleToolChain, so that it is also applied for Clang.
Attempt to determine which architectures are available by invoking gcc/clang with -m32 or -m64 when detecting the compiler version.

In practice only really works when building on a 32 bit host (eg cygwin32). Should be enough to fix the broken int test.
Fixed test fixture for api changes.
Minor tidy up.
Added some notes about better handling of target platform in GCC tool chain.