Pre-process SDL.h via CMake, wrapped SDL.h

To avoid having to manually maintain a lot of C definitions manually, we
use CMake to pre-process a dummy C program that includes SDL.h. During
installation, a Lua script is invoked via CMake to clean up the
resulting file and pass the output back to CMake, which inserts it into
another Lua script that handles bindings. This way, we don't have to
waste time opening and reading a C header at runtime.