Improve detection of already loaded libraries

Linker is now able to resolve symlinked libraries correctly.

soinfo is extended to save the graph of dependencies during
load/unload. Dependencies are used only in CallConstructor.

Bug: 9741592
Change-Id: Id9c48a74c46aa89bcdf3d54ec2f8ba3d398130b1
diff --git a/linker/linker_allocator.h b/linker/linker_allocator.h
index 3af99da..fbf58fe 100644
--- a/linker/linker_allocator.h
+++ b/linker/linker_allocator.h
@@ -51,6 +51,8 @@
 };
 
 /*
+ * We can't use malloc(3) in the dynamic linker.
+ *
  * A simple allocator for the dynamic linker. An allocator allocates instances
  * of a single fixed-size type. Allocations are backed by page-sized private
  * anonymous mmaps.