Properly escape filenames in line directives.

Fixes PR17018.  Only partial test coverage because I don't want
to try to write a test which generates a file whose name contains a newline.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@189557 91177308-0d34-0410-b5e6-96231b3b80d8
Two more definitions required by libsupc++ (_sleb128_t and _uleb128_t)

Differential Revision: http://llvm-reviews.chandlerc.com/D1542

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@189558 91177308-0d34-0410-b5e6-96231b3b80d8