Make compiler/optimizing/ symbols hidden.

Make symbols in compiler/optimizing hidden by a namespace
attribute. The unit intrinsic_objects.{h,cc} is excluded as
it is needed by dex2oat.

As the symbols are no longer exported, gtests are now linked
with the static version of the libartd-compiler library.

libart-compiler.so size:
  - before:
    arm: 2396152
    arm64: 3345280
  - after:
    arm: 2016176 (-371KiB, -15.9%)
    arm64: 2874480 (-460KiB, -14.1%)

Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing --jit
Bug: 142365358
Change-Id: I1fb04a33351f53f00b389a1642e81a68e40912a8
diff --git a/compiler/optimizing/code_generator.h b/compiler/optimizing/code_generator.h
index 9e3e454..43e0615 100644
--- a/compiler/optimizing/code_generator.h
+++ b/compiler/optimizing/code_generator.h
@@ -26,6 +26,7 @@
 #include "base/bit_utils.h"
 #include "base/enums.h"
 #include "base/globals.h"
+#include "base/macros.h"
 #include "base/memory_region.h"
 #include "dex/string_reference.h"
 #include "dex/type_reference.h"
@@ -37,7 +38,7 @@
 #include "stack.h"
 #include "utils/label.h"
 
-namespace art {
+namespace art HIDDEN {
 
 // Binary encoding of 2^32 for type double.
 static int64_t constexpr k2Pow32EncodingForDouble = INT64_C(0x41F0000000000000);