InstrProf: Write raw binary profile from runtime

Write a raw binary profile from the runtime.

<rdar://problem/15950346>

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204495 91177308-0d34-0410-b5e6-96231b3b80d8
InstrProf: Reorganize files; no functionality change

Move functions around to prepare for some other changes.

  - Merge InstrProfilingExtras.h with InstrProfiling.h.  There's no
    benefit to having these split.

  - Rename InstrProfilingExtras.c to InstrProfilingFile.c.

  - Split actual buffer writing code out of InstrProfiling.c into
    InstrProfilingBuffer.c.

  - Drive-by corrections of a couple of header comments.

<rdar://problem/15943240>

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204497 91177308-0d34-0410-b5e6-96231b3b80d8
InstrProf: If libc is available, use it; no functionality change

It was misguided to plan to rely on __llvm_profile_write_buffer() in
__llvm_profile_write_file().  It's less complex to duplicate the writing
logic than to mmap the file.

Since it's here to stay, move `FILE*`-based writing logic into
InstrProfilingFile.c.

<rdar://problem/15943240>

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204498 91177308-0d34-0410-b5e6-96231b3b80d8
InstrProf: Write the __llvm_profile_write_buffer()

Write __llvm_profile_write_buffer(), which uses the same logic as
__llvm_profile_write_file(), but writes directly to a provided `char*`
buffer instead.

<rdar://problem/15943240>

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204499 91177308-0d34-0410-b5e6-96231b3b80d8
InstrProf: Unify logic in two profile writers

<rdar://problem/15943240>

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204500 91177308-0d34-0410-b5e6-96231b3b80d8
InstrProf: __ => _ in header guards

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204502 91177308-0d34-0410-b5e6-96231b3b80d8