Several changes to the script.

1. #pragma once

This preprocessor directive is non-standard, but widely supported. It has several advantages over usual preprocessor guards (while also having several disadvantages). While the choice of using the pragma is debatable, the support for it may still make sense.

2. #include "file.h" and #include \<file.h\>

Originally, the script searched for included files locations only in the include_paths list, no matter how the file was included. According to the standard, the quoted and angled version of the include directive should differ. In case of #include "file.h", most compiler implementations first search for the file.h in the directory of the file containing the include directive being processed. Changing the script to have the same search logic allows to ease include_paths configuration, making it smaller and more complement to the project's build settings. It also allows to avoid possible errors in case of the files with the same name but different locations. With the original script implementation, #include "file.h" would always find the same file (in the first matching include_paths entry) no matter where it's included from.

3. strftime placeholders in prologue.

A minor improvement to allow inserting amalgamation timestamp into the resulting file, which may be useful in some cases.