Support for function summary index bitcode sections and files.

Description

Support for function summary index bitcode sections and files.

Summary:
The bitcode format is described in this document:

https://drive.google.com/file/d/0B036uwnWM6RWdnBLakxmeDdOeXc/view

For more info on ThinLTO see:

https://sites.google.com/site/llvmthinlto

The first customer is ThinLTO, however the data structures are designed
and named more generally based on prior feedback. There are a few
comments regarding how certain interfaces are used by ThinLTO, and the
options added here to gold currently have ThinLTO-specific names as the
behavior they provoke is currently ThinLTO-specific.

This patch includes support for generating per-module function indexes,
the combined index file via the gold plugin, and several tests
(more are included with the associated clang patch D11908).

Reviewers: dexonsmith, davidxl, joker.eph

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D13107