Changes to support LLVM 3.3

These are tied to the corresponding changes in llvm-data-interop
Write more efficient Ord instance for Identifier