A Prolog engine (SWI) is initialized before AST traversing.

After traversing the AST, a Prolog top-level is run.
Some Prolog facts are asserted (X 'isA' CXXMethodDecl).

Those facts are asserted before running an interactive Prolog
shell. Prolog predicates implemented in C++ are written in a file
PrologPredicates.cpp. File PrologRegisterPredicates.c implements
Prolog foreign function registration (in C, to avoid annoying compiler
warnings).

Error messages are printed using debugging infrastructure in
'llvm/Support/Debug.h'. Debug messages cannot be disabled.

Works with
clang commit 0e53df62962ccbfc6fb186b73b825b60a1052f92 and
LLVM  commit d90a1916851c8f3e113e5f7c440f476add461496.
Asserted Prolog facts of type 'isA(X, PointerType)'.

Types are traversed using ASTContext::types_begin/end, instead of
visiting functions in RecursiveASTVisitor. The reason is that
the recursive visitor visits types repeatedly.
Method defs are now outside class declaration in CrispASTAction.cpp.
Implemented Prolog predicate getPointeeType/2.

New predicates have been added to test the predicate above: name/2 has
been split into typeName/2 (only a few cases implemented: typedefs and
record types) declName/2 (only for NamedDecl's). Also
getCanonicalTypeUnqualified/2, to compare types modulo typedefs.

Predicate isA/2 sets the correct sort for all Type subclasses.

Works with
clang commit 50118da99d3c04eb14747cfdc44a9e1d56432aea and
LLVM  commit 7d5a61e975260d01bb2079b5dcb9c93b76a4734d.
Added Prolog predicates getResultType/2 and getType/2.
Fix: lib deps (SWI Prolog, Boost, Clang) set as configure options.

No more non-portable paths in Makefiles.

To check that Boost is present (>=1.46.1) macros file m4/boost.m4 is
used (got from https://github.com/tsuna/boost.m4/).

'--with-*' options have been added to configure script.
GPL v3 license and copyright notice added to all source files.
C-style (ISO) comments for C source files (including headers).
Minimal change in header comments of some files.
isA/2 asserted for all Decl's and Prolog pred to get source locs.

To get PresumedLoc's from Prolog is necessary to have access to the
CompilerInstance. A singleton object of class CompilationInfo is set
up in CrispConsumer::HandleTranslationUnit() that can be accessed from
all Prolog predicates implemented in C++ using the interface in
CompilationInfo.h. Currently it only contains the CompilerInstance.
Refactoring of PrologPredicates.*.
Added #include guards.
Predicate typeName/2 extended to handle BuiltinType's.

Singleton CompilationInfo has also been extended with new data (e.g. a
PrintingPolicy object), and all data has been encapsulated.
Predicate typeName/2 extended to handle other Type subclasses.
typeName/2 replaced by the more general getAsString/2 pred.

getAsString/2 returns a string representation of any type (of any Type
subclass), including qualifiers. As it works on QualType's, now
getType/2 returns a QualType.
Added pred getTypePtr/2 to get a Type from a QualType.

getPointeeType/2 and getResultType/2 are modified to return a QualType.
Presentation: better function order in PrologPredicates.[h|cpp].
getCanonicalTypeUnqualified/2 returns a QualType.
'Type' and 'QualType' are melted as Prolog predicate args.

Some Prolog predicates as getTypePtr/2 are no longer necessary.