Use DIBuilder in debuginfo
Made the while DebugContext mutable, not just created_* hashes
Disabled create_arg
Move "return" basic block after all other function blocks.
Debug loc for local var declarations
Removed extraneous string allocations.
Misc refactoring.
Fixed compile warnings.
Fixed whitespace "errors".
Fixed remaining issues to pass debug-test/* tests.
Made debugger scripts source line insensitive.
Converted vec::map to member.
Made unimplemented debuginfo a note rather than a compiler error.
Refactoring and tidy warnings cleanup.
Fixed rebase fallout .
auto merge of #7134 : vadimcn/rust/DIBuilder, r=jdm

This commit fixes rustc's debug info generation and turns debug-info tests back on.

The old generator used to write out LLVM metadata directly, however it seems that debug metadata format is not stable and keeps changing from release to release.  So I wrapped LLVM's official debug info API - the DIBuilder class, and now rustc will use that.

One bit of old functionality that still doesn't work, is debug info for function arguments.  Someone more familiar with the compiler guts will need to look into that.

Also, unfortunately, debug info is still won't work on Windows,- due to a LLVM bug (http://llvm.org/bugs/show_bug.cgi?id=16249).

Resolves issues #5836, #5848, #6814