Fix emitted debug info

Debug info is one of the most fragile parts of LLVM, IMO. This isn't
made any easier that by the fact that LLVM likes to silently drop debug
information at various stages if it doesn't conform, so let's break down
what I'm doing here:

First and most crucially, i'm setting the correct linkage name for the
DISubprogram. Ever since the static compile branch merged the name of
the julia function and the linkage name may not be the same anymore.
The big irony of course is that before the static compile branch,
that was correct but irrelevant, while afterwards it became
relevant (since the debugger looks for it in sys.$shlib_ext), but
incorrect. Fixing that pulls the debug info through to the final
shared library.

Second, I'm changing the dbuilder from a global static to a context
local instance. This probably isn't strictly needed for this change,
but it needs to happen for the MCJIT branch anyway. The important
thing is that we now properly call dbuilder.finalize.

Finally, I'm telling make to delete the sys*.o files, which for
some reason it is extremely eager to do [1]. This is important
because on OS X the linker doesn't actually link debug information [2],
but there is a separate debug info linker called `dsymutil`.
Technically, however, a debugger should be able to pull the debug
info out of the object files themselves but ToT lldb has a bug, so
that isn't working properly. Manually running `dsymutil`, works,
but I prefer to attempt to fix lldb.