This commit introduces the changes to use the libtooling interface and also
to process more than 1 C file at a time.
Make use of the llvm command line options parser.

Updated arguments passed to the jcut executable in our test files in the
python script.
Fixed bug which would make jcut exit when an integer or float constant was
passed to a pointer type.

The jcut behavior is to prevent initialization of pointer types with arbitrary
addresses. The only arbitrary address allowed to be used is 0 (NULL or nullptr)
only for the cases in which the uses wants to test error handling flows.

The other valid way to initialize pointer types is using the jcut pointer
initialization syntax [n:x].
Fixed bug in which we were passing the double quotes from strings so they
would be printed. The real behavior is that they are not printed, we only
want the string inside.
Fixed bug which would cause jcut to crash when trying to initialize a pointer
type other than pointer to char or unsigned char with a string.

The correct behavior is initialize only char* or unsigned char* with strings.
All other pointer types initialized with a string should raise an exception.
Added more test cases.
Removed unnecesary dynamic_cast and added TODOs
Implemented the checking of the ExpectedExpressions for the final test result

Now we can detect when an ExpectedExpression failed, but we still need to
report which ExpectedExpression failed!

This also changed caused the ExpectedExpressions to be evaluated first, this is
because we are generating a function for the ExpextedExpression and the
code for the variable assignment and function called are created in another
function in the test-fixture one tree node above it. I may need to generate
separate functions for each function call and variable assignment, this way
the expressions will be evaluated in the same order they defined by the user.
Print which ExpectedExpression failed on the test output.
Print the line and column for an ExpectedExpression when it fails.

NOTE: The column number is not exactly at the beginning of the expression,
it is set some columns later, this is due to the flex parser behavior in
the count function.
Fixed the way we count the start of a given token so the column always starts
at the beginning of the current token.
Refactor: Put all the instructions in a single llvm function.

This commit introduced a big changed to simplify the amount of LLVM IR
code generated. Now a single LLVM function is generated for a test.

Groups remain as before
Added more test cases
Removed deprecated feature 'test parser recovering'. We will fail as soon as
an error is found and continue working when everything in the syntax is working.
Updated tutorial.