WIP: Source: Extract a Basic library
This patch attempts to reorganize some of the source files by creating a Basic library where the common code/utilities reside. In this patch, only the files that do not require modification are moved in Basic, while a couple of other files that require refactoring to decouple them from other classes are left for later.
The aim is to try to make CMake more modular (taking inspiration from Clang's source code), and to clean up the Source/CMakeLists.txt
file a bit.