Refactor cc modules to use decorators instead of inheritance

For example , instead of trying to have libraryLinker inherit from
baseLinker and libraryCompiler inherit from baseCompiler, create a
single decorator object that wraps both baseLinker and baseCompiler.

Test: Builds, no unexpected changes to build.ninja
Change-Id: I2468adaea8466c203a240259ba5694b8b1df7a52
diff --git a/Android.bp b/Android.bp
index 4b56ac0..e1a6621 100644
--- a/Android.bp
+++ b/Android.bp
@@ -166,6 +166,7 @@
         "cc/library.go",
         "cc/object.go",
         "cc/test.go",
+        "cc/toolchain_library.go",
 
         "cc/ndk_prebuilt.go",
         "cc/ndk_headers.go",