From me and Cristina: Fix removal of out-of-line definitions.

If we had:
struct MyClass {
  void f() {}
}
MyClass::f(){} // expected error redefinition of f.

In that case we would have tried to remove the lookup entry for the decl from
the primary decl context of the lexical decl context, which entry doesn't exist.
It is registered in the semantic decl context of the decl itself.
From Cristina and me: Fix the SubSequentDecls.C

The test #includes a header file which is expected to be reverted.
.storeState and .compareState report that header file is leftover in clang's state.
This is intentionally done, because we cannot free the FileEntry pointing to that
file, because it is referenced all over the Source- and File-Managers. Instead we
clean up the cache of the file so that whoever does a request for that file entry
it will be reread from disk.

Semantically speaking this side effect that store/compare state found must be skipped.