This is an alternative to http://reviews.llvm.org/D19327
We want to keep all the invalid function declarations as part of the AST.
This patch depends also on http://reviews.llvm.org/D19763 otherwise the tests in SemaCXX/function)redecl.cxx would fail as some invalid declarations would be hiding previous ones, preventing errors