InstrProf: Fix shared object profiling
Change the API of the instrumented profiling library to work with shared
- Most things are now declared hidden, so that each executable gets its own copy.
- Initialization hooks up a linked list of writers.
- The raw format with shared objects that are profiled consists of a concatenated series of profiles. llvm-profdata knows how to deal with that since r208938.