Add "extern" statement

"extern" allows for declaring a function through ExternalLinkage. This
function can be defined in native C/C++ code.

This change also updates the code to compile using llvm-3.5