Printing simple Macros enabled
Prevent the printing of extra semicolons
Operators skipped by string checking A lot of nested name specifiers were in operator arguments And operator declarations were not needed anyway. Check isOperator function of ForwardDeclPrinter
Skip functions and vars with nested types and new failing enum tests
Transformation-Callback Pipeline for Decls needing special handling (when defining after being forward declared.)

New state in Interpreter (AutoloadingStateInfo) containing a map.
AutoloadingTransform adapted to push required decls into this map.
AutoloadCallback adapted to be called when a file is included (but before being parsed)
(done by enabling PPCallbacks and overriding InclusionDirective method)
m_PPCallbacks changed from OwningPtr to a normal pointer as an workaround for double free bug.
Default template arguments as a POC example usage of this pileline.

Test:
AutoForwarding.C now passes because of this commit.

Extra:
Re-enabled the printing of class template default arguments when generating fwd declarations.
Forward declprinter now looks up the SourceManager for file name instead of directly printing the Argument.
Move Autoloading State information from Interpreter to Callback: Also, use the TransactionCommitted callback instead of a transformation Disable AutoloadingTransform in IncrementalParser for now.
Default argument stripping for FunctionDecl Also, re-enabled the printing of function default arguments in ForwardDeclPrinter
Modified test to include a function with a default arg
Added a function to attach the AutoloadCallback automatically
Added options for controlling Macro printing and skipping System Headers And other modifications in ForwardDeclPrinter: HasNestedNameSpecifier function is now disabled. Because it fails for typedefs or classes not having complete definitions. Differentiating between variable initializations and function default arguments.
Display attribute only when class is fully defined
Prevent printing non-fixed enums Remove skipping of system headers Also, do not print default template arguments if they do not have a name.
Rename SetAutoloadCallback to EnableAutoloading