Support nested macros. (Still don't support macro arguments.)

Now you can say:

    #define A B
    #define B C
    #define C 4

int x = A;

And it will work as expected.

Print an error message rather than assert when we're expecting a
function value, but don't find one.
diff --git a/libacc/tests/main.cpp b/libacc/tests/main.cpp
index 948f4cb..e4e386f 100644
--- a/libacc/tests/main.cpp
+++ b/libacc/tests/main.cpp
@@ -38,14 +38,7 @@
 }
 
 ACCvoid* symbolLookup(ACCvoid* pContext, const ACCchar* name) {
-    // Call dlerror once to clear out any preexisting error condition.
-    (void) dlerror();
-    ACCvoid* result = (ACCvoid*) dlsym(RTLD_DEFAULT, name);
-    const char* error = dlerror();
-    if (error) {
-        fprintf(stderr, "%s\"%s\"\n", error, name);
-    }
-    return result;
+    return (ACCvoid*) dlsym(RTLD_DEFAULT, name);
 }
 
 #ifdef PROVIDE_ARM_DISASSEMBLY