clang_toolchain: refactor paths and strip

 * New gn args:
  * clang_prefix - overrides the default clang toolchain prefix
  * use_strip - set to false to disable binary stripping
 * Eradicate the duplication of toolchain paths.
 * Simplify the interface to clang_toolchain to enable the passing of a prefix,
   for convenience in swithcing clang_toolchains, but retain the ability to
   provide paths to individual tools.
 * Add and apply use_strip consistently to all toolchain invocations.

Background:
This change started to facilitate Go host builds using CGO. See change-id
If1a11c4d7e64e143ba6fef15763e67a892344d55 for more details on that. The
necessary prerequisite was to expose the toolchain prefix directory, so that
we could tell the Go toolchain about that. The existing toolchain rules
duplicated this path calculation.

Change-Id: I77b4b7c1a780ac9e1f1b2d6854442c10f75c92b0
3 files changed