Factor DLL API macros into its own shared header for tests.
Added GCC visibility macro to export declarations.
Moved some tests definitions from the header to the source file.
Move the definitions to the header again, but provide them at global scope.

This should fix the previous problem too, and keeps related declarations/definitions together.
Fixed more declarations to define their members at global scope.
Fixed more declarations to define their members at global scope.
Update GettingStarted.md

Clarified LLVM and Clang revisions needed.