Add basic multi-line input support to clang-repl by using newly available SourceFileGrower interface of Preprocessor.
Compared to cling, this change uses fully fledged clang preprocessor (not MetaLexer) so it supports very complicated macro expressions.
NOTE: this is the related to https://discourse.llvm.org/t/rfc-flexible-lexer-buffering-for-handling-incomplete-input-in-interactive-c-c/64180
I think we can simplify the heuristics here by asking if the end source location of the last created declaration is the same as the parser/lexer current token that is observed before EOF. If that's the case, then we are done. If not we can request more input.