In ASTUnit::LoadFromASTFile, the preprocesor object is set up using
default-constructed LangOptions (which only later get populated).
Then, in the constructor of IdentifierTable, these default-constructed
LangOptions were used in the call to AddKeywords, leading to wrong
initialization of the identifier table.
This change defers adding the keywords to the identifier table until
after the language options have been loaded from the AST file.
Prior to this change the included test would fail due to the class
token being reported as an identifier (since the C++11 enum class
construct is not present when using the default language options).
ExternalLookup to match coding conventions. Also, can you mark this constructor as explicit? Might as well change the other constructor as well since it's being reformatted.