From Dario Pellegrini: use $(PYTHON) instead of python.

Fixes building cling on ArchLinux; that stopped the building as python3 was called instead of python2.
Replace uint by unsigned int (fixing compilation error on Windows)
Generate log statement for all skipped decls, also fixes a restrict bug
Enable callback in Interpreter, change test to use metacommand
Remove backslash from comment, to fix doxygen warnings
Remove AutoloadingTransform and use the TransactionCommitted callback
Put DeclFixer logic in AutoloadingVisitor
MultiplexInterpreterCallbacks
Bypass short circuit evaluation
Add constness.
AnnotateAttr::setAnnotation needs the decl of operator new.
Move the multiplexing callbacks in lib. Simplify.
Remove the non-working implementation of multiplexing callback.
File can become 0 if #include-ing non-existant file.
Add override keyword for sanity control.
Move the ownership stealer in the implementation.
Enable autoloading callback.

This callback works in sync with the forward declaration autoloading maps. I.e
we produce a forward declaration map file. However for certain forward declarations
we need for example to put the default arguments. For instance function declarations
need default arguments, and it would be sufficient to make a library call.

However the problem is when the actual definitions come and try to merge with
the forward declarations. In the function decls case, the compiler naturally will
issue an error because C++ doesn't allow two declarations to define the default
arguments. The same holds for template classes (of course following a lot more
 complex semantics). This callback monitors if a file with the original file
(whose forward decls were registered) is being #included and strips all the
default arguments so that the following pattern is compilable: