This merge brings in Gab's trunk changes to line_map and my refactoring of the streaming code. It also allows us to use C++ for the implementation (with the same caveats we have in trunk, the code must be ifdef'd to build with both C and C++ compilers).
I will continue the next phase of the streaming refactoring in branch. This way, I will have a better idea of what hooks we need and what hooks can go. Once I have the separate cache implemented, I will forward port the next stage of the refactoring to trunk. Tested on x86_64. Diego.