Create toplevel function closures as constant, remove the array of globals and make unique the toplevel identifiers
Make all binded LLVM globals and functions private