Merge branch 'linker-cleanup'

This branch updates the CommandLineLinker API to pass the
CCTask down the line, enabling logging from linker subclasses.
Add support for the clang compiler

[JES: minor touch-ups in the documentation, method naming]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
CaptureStreamHandler: fix whitespace
CaptureStreamHandler: track both stdout and stderr

The previous logic always threw away stdout if anything was present on
stderr. But we sometimes need the contents of stdout despite there also
being a nonempty stderr.

For backwards compatibility, this change leaves the behavior of
getOutput() alone, while adding getStdout() and getStderr() methods for
situations when more specifics are necessary.
CaptureStreamHandler: add execute static method

This method provides a way to easily execute a command while returning
the CaptureStreamHandler that was used to capture the output. This
provides a more flexible alternative to CaptureStreamHandler#run, which
returns only stderr or stdout contingent on whether stderr is nonempty.

Unfortunately, that mechanism left no way to interrogate stdout in the
case of a nonempty stderr. In contrast to run, The execute method
returns the CaptureStreamHandler itself, so that both stderr and stdout
can be freely accessed.
GppLinker: disable unsupported flags for clang

OS X 10.9 Mavericks now uses LLVM with clang by default. While it
pretends to be gcc, there are a few incompatibilities. In particular,
the -static-libgcc and -shared-libgcc flags are unsupported, and
-lstdc++-static does not work because that static library is not
present on standard include paths.

[JES: rebased on top of the previous clang work]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
GppLinker: warn about unsupported cases with clang