Add llvm's StringMap.

Some of the header files were pruned to remove functions not needed by
StringMap. The lines that remain are all untouched, though.

From llvm r178740.
Use llvm's StringMap instead of stl's hash_map.
Use BumpPtrAllocator. Not any faster, though.
Use MurmurHash2 in llvm's hashmap. Now only 30ms slower than ninja 1.1.0