Implemented feature to execute mockup functions.

However this still needs further testing.
Partially fixed a bug when using several mockup statements. Use the last one.

However this code is still buggy when we have 2 mockups for different functions.
Fixed bug which would cause many wrappers to be created.

We only need to create one wrapper for each function under test, and then
update the function pointer accordingly with the mockup functions created.
This means that for every mockup function we create 2 functions: one for
storing the address of the mockup function in the function pointer and the
second function stores the address of the actual function in the function
pointer.

For all the mockup functions created for a specific function only one
wrapper function will be created. This wrapper function just calls the
the function pointer with the passed arguments.
Fixed bug: When the function under test was the mockup it the wrapper function
was not being called properly. This was fixed by checking when the function
under test was the actual mockup and then just call the wrapper function
instead.
Added more test cases.
Fixed bug: Now all the functions for which there is a mockup created, the
mockup will be called either on the test, after or before statements.
Added support for mockup_all statements.

However, there is a bug when restoring the previous function definition. It
forgets about the functions replaced so far.
Fixed bug: Now we restore properly the mockup functions in a series of nested
groups.

There is still an issue in which a test mockup restores back to the original
mockup and not the group mockup.
Fixed bug: Now the appropriate MockupFunctions are restored for a given group
after running individual tests and also after running an entire group.
Fixed bug when parsing a MockupVariable. Added more test cases.