As previously mentioned [1] I would like to add the ability for bitcode
files to contain multiple modules. This patch makes some structural changes
to the bitcode format and bitcode writer in preparation for that change.
- Move BitcodeWriter's ownership of its BitstreamWriter to its client and make it responsible for emitting a single block rather than an entire bitcode file.
- Move the block info block from the module block to the top level. This will let us use the same set of abbreviations in each module.
[1] http://lists.llvm.org/pipermail/llvm-dev/2016-May/099095.html