Get LLVM and extern blocks working again

See individual commit messages. With these changes, Hello World
once again works with --llvm, and test/extern/ferguson tests are working.

@noakesmichael to review externCResolve change
@sungeunchoi to review --about changes

Anybody else for the others!

I was very surprised to see
symbols with FLAG_TYPE_VARIABLE ending up all the way
in codegen. In particular, I'd recommend that somebody
add an assertion failure near "Why are we getting here?"
around expr.cpp:3721 in the patched version -- I don't
think that code should be necessary.

@hildeth can you OK this change to symbol.cpp?