Add SPDX headers
This MR adds the SPDX headers from reuse to the project.
This effort is not done yet, but because it touches every file in the repository, keeping the changes on a separate branch will quickly become unwieldy.
If you see a file that has current contributions from someone not in the header, please open an MR to fix the header!