Renamed test-info to test-data rule. This change implied changing
the parsing method and the scanner.
Removed dump() method which was never used. Removed unused code too.
Now we can detect when there is a DataPlaceholder in the test file.
Added a lot of copy constructors. This was need in order to generate copies
of TestDefinitions from DataPlaceholders.

Note that anything added from now on in a TestDefinition will have to define
a copy constructor so that test is properly generated.
Added methods to properly replace a DataPlaceholder with a fixed valuie.

TODO: Read the values from a CSV file and build the appropriate data structures
Replace the original TestDefinition which had DataPlaceholders with the recently
generated TestDefinitions and erase the TestDefinition with DataPlaceholders.
Added support to read a CSV file and generate as many functions as there
are rows in the CSV file.

The rows represent a single function under test, and each column represents
a DataPlaceholder. The restriction of this CSV file is that it has to have
M rows with N columns each.

If a given row has different column count than other rows it will be marked
as invalid CSV file.
Added test cases for replacing DataPlaceholders with new functions created.
Added one more check in TestGeneratorVisitor:VisitFunctionArgument() to detect
when the argument is a buffer allocation even though the llvm argument type
was a pointer. This condition was discovered when using data files.

Fixed bug: To all the copy constructors added we were not copying the base
class object.
Added more test cases.
Fixed bug: TestTeardown was not being copied properly.
Added more test cases.
Added more test cases for structs and added a fix for detecting commas inside
a structure initialization in a DataPlaceholder.
Fixed bug: Replacement of DataPlaceholders was not working when we had a group.

This was fixed by using a stack to have a delimiter between the DataPlaceholders
to be replaced for each group by using nullptr.