Resolve AIDL types without using Java or C++ types

AIDL types are now resolved without reling on the target language. The
class AidlTypenames is introduced to host the built-in types and defined
types and to resolve a type name in a type specifier to a full-qualified
name. There is no Java or C++ types in AidlTypenames.

Specifically, while parsing, whenever a parcelable or an interface is
recognized, it is added to AidlTypenames. Also, when a type specifier is
encountered, the parser remembers to resolve it later. After the parsig
phase is done, the unresolved type names are all resolved using
AidlTypenames.

This will allow us to refactor (or eliminate) the TypeNamespace class
where AIDL types and Java/C++ types are mixed together.

Bug: 110967839
Test: m -j
Test: system/tools/aidl/runtests.sh

Change-Id: Ife608c1674f4a89ec7d1fe64ae9e0e0922f3a3c8
11 files changed