asm-llvm: Improve error messages for undefined identifiers.

We don't technically know whether an unknown identifier is actually
a forward reference to a future function or function table.  But we
emit better error messages if we do a specific check in places where
a function or function table isn't valid instead of waiting for the
typecheck to fail.
asm-llvm: Support forward references to functions.