use dedicated ast nodes for FieldDecls instead of using VarDecl

The Decl / Spec naming is now a bit confused and doesn't match the Go
spec, this needs to be cleaned up later on.
initial support for anonfielddecls (crashes on recursive types for now)
fix an assertion caused by uninitialized member variables
slightly expand anonfielddecl test
let -print-stats print identifier table stats too
shuffle todo.txt around a bit
remove some objc code from SemaLookup
remove koenig lookup code from SemaLookup
remove more koenig remnants, and assignment operator overloading stuff
remove "special member" stuff (constructors, destructors, operator overloading, ...) from SemaLookup
remove some more CXXConstructorDecl stuff
remove a few objc bits from SemaExpr
compile DeclContext::lookup() and parts of Sema::LookupQualifiedName() in preparation of struct member lookup