Removed unused code and @todos which were already implemented.
Refactored code: Created JCUTAction which makes use of the libtooling interface.

This resulted in removed boilerplate and duplicated code. However we must
pay attention to the lifetime of the LLVM Modules.
Delete empty files after running all the tests.
Included the linenoise library into the build system.

The linenoise version I used is the one from this fork:
https://github.com/msteveb/linenoise

Which contains a port to win32.
Removed linenoise macro conditionals.
Implemented a quick work around to detect when the user wants to introduce
a new line in the interpreter.
Added basic support for the JCUT interpreter. This is the beginning of the
JCUT interpreter, obviously needs to be polished.
Change the prompt type according to the command CTRL-J which tells the
interpreter to not process all the input once the user has finished entering
commands.

This is a very basic functionality, ideally the prompt should change after
evaluating the previous line to determine whether we have received the minimum
expression which can be executed. But that will have to be done later.
FIXED BUG: The problem was whenever a EmitLLVMOnlyAction was executed after
calling llvm::InitializeNativeTarget() the application woudl crash complaining
that clang was missing a positional argument. This was due to the fact that the
BackendConsumer was executing code once the NativeTarget was initialized. When
the NativeTarget was not initialized that code was not executed, thus the LLVM
IR Code was executed. The fix to this was to pass the BackendConsumer the name
of the current file being processed through the CompilerInstance object.

Also added support to create a test by using the JCUTAction and passing it the
interpreter line through a static class variable.

This change also moved the JIT target initialization out of the JCUTAction
to make sue it's initialized once.
Fixed bug: The wrong function was being retrieved inside a before or after
statement. Now we are getting the right one.
Process interpreter input once the user is ready. The input is ready when
the prompt is equal to 'jcut $>'
Added more test cases.
Renamed ParseGlobal*() methods to ParseGroup*().
Implemented use of template class unique_ptr<>
Renamed several method names and make use of the unique_ptr<> class template.
Refactored code to use the Constant class rather than the old deprecated
Argument class.
Implement use of the template class unique_ptr<> in the FunctionCall class.
Once again use the Constant class rather than the old deprecated Argument class.
Removed deprecated class.
Removed @todos which were already implemented and change the constness of the
returned pointer types.