Added ModuleMerger, the first pass of a stripped-down LLVM Linker replacement
that preserves types.
Merged changes from head.
Added more tracing, cleaned up some of the type mapping code.
Added a check to verify that base classes have the right LLVM type.
Add append mode to Path and File classes.
Merge
Added a tracing flag, enhanced tracing support.  Fixed problems with copying
and recording globals in the value map.
Fixed a bug where we weren't populating the reverse mapping and thus were
double converting some types.  Also registered new struct types, stremlined
some code, added more logging and a check to verify that a structure wasn't
replaced during nested traversal (which should never happen at this point).
Replaced llvm::Linker with ModuleMerger.
Merged.
Export constants from higher level curl module.
Make mongo.oids be displayed as hex digits, fix problem with cursor advanced
upon creation of search iterator.
Fixed bugs caused by maintaining a global callback list.  Callbacks now
managed their own cleanup.
Merged.
Added a test for the nested annotation fix.
Remove redundant "@abstract" keyword before ProcessHandler interface.
Port to LLVM 3.3

--HG--
branch : llvm-3.3
Remove some variables that were once added for debugging.
Implement hierarchical aliases (so we can reference things nested in other
classes).
When deserializing an overload, don't change the owner of the functions if
they already have an owner.
Serialize module exports so that second-order imports work when compiling
against a cached module.