AidlConstantValue::EvaluatedValue<T>() in the header

Renamed from Cast<T>() and moved to the header to avoid linker errors.

This should be a small refactoring but turns out to be quite big because
of inclusion dependencies.
- AidlLocation is moved to its own location.h/.cpp
- Some AidlErrorLog's methods are implemented in .cpp

Bug: none
Test: aidl_unittests
Change-Id: I3b77aa24ed9362f35a163c3e3cd5c73fb23bd35f
diff --git a/aidl_unittest.cpp b/aidl_unittest.cpp
index e654086..091c7ee 100644
--- a/aidl_unittest.cpp
+++ b/aidl_unittest.cpp
@@ -1030,25 +1030,26 @@
   EXPECT_THAT(code, testing::HasSubstr("public static final int y = 1;"));
 }
 
-TEST_F(AidlTest, ConstantValueCast) {
+TEST_F(AidlTest, AidlConstantValue_EvaluatedValue) {
   using Ptr = unique_ptr<AidlConstantValue>;
   const AidlLocation& loc = AIDL_LOCATION_HERE;
 
-  EXPECT_EQ('c', Ptr(AidlConstantValue::Character(loc, 'c'))->Cast<char>());
-  EXPECT_EQ("abc", Ptr(AidlConstantValue::String(loc, "\"abc\""))->Cast<string>());
-  EXPECT_FLOAT_EQ(1.0f, Ptr(AidlConstantValue::Floating(loc, "1.0"))->Cast<float>());
-  EXPECT_EQ(true, Ptr(AidlConstantValue::Boolean(loc, true))->Cast<bool>());
+  EXPECT_EQ('c', Ptr(AidlConstantValue::Character(loc, 'c'))->EvaluatedValue<char>());
+  EXPECT_EQ("abc", Ptr(AidlConstantValue::String(loc, "\"abc\""))->EvaluatedValue<string>());
+  EXPECT_FLOAT_EQ(1.0f, Ptr(AidlConstantValue::Floating(loc, "1.0f"))->EvaluatedValue<float>());
+  EXPECT_EQ(true, Ptr(AidlConstantValue::Boolean(loc, true))->EvaluatedValue<bool>());
 
   AidlBinaryConstExpression one_plus_one(loc, Ptr(AidlConstantValue::Integral(loc, "1")), "+",
                                          Ptr(AidlConstantValue::Integral(loc, "1")));
-  EXPECT_EQ(2, one_plus_one.Cast<int32_t>());
+  EXPECT_EQ(2, one_plus_one.EvaluatedValue<int32_t>());
 
   auto values = unique_ptr<vector<Ptr>>{new vector<Ptr>};
   values->emplace_back(AidlConstantValue::String(loc, "\"hello\""));
   values->emplace_back(AidlConstantValue::String(loc, "\"world\""));
   vector<string> expected{"hello", "world"};
-  EXPECT_EQ(expected,
-            Ptr(AidlConstantValue::Array(loc, std::move(values)))->Cast<vector<string>>());
+  EXPECT_EQ(
+      expected,
+      Ptr(AidlConstantValue::Array(loc, std::move(values)))->EvaluatedValue<vector<string>>());
 }
 
 TEST_P(AidlTest, FailOnManyDefinedTypes) {