Add support for catcierge_output_execute in the grabber.

It is still possible to use the old execute function. To enable the new one --new_execute must be used.
Add an example template json file.
Fix issues with output templates.
Fix windows build.
Started adding a "compose script".

This puts together a nice image from the step images to show how the algorithm worked for each match.
Fix captions as well.
Fix some small bugs.
Support git/version info in templates.

Also warn if the build is made from a non-committed state in CMake.
Add more output variables.

Pretty much all things setable via the command line that can be relevant to log.
Some more work on the compose script.
Add some more coverage for the output code.
Some more work on the compose script + more.
Added a new test program.

This tests the finite state machine. Allows you to pass 4 match images and let them run through the entire state machine.
Load templates in the fsm tester as well.
Update the composer script some more.
Fix windows build.
Add millisecond support to time formatter.

Added %f as additional formatting char for catcierge_strftime.
Kind of fix windows build.

(One test fails).
Fix windows build.
Move strftime into a separate file.

This so we can avoid a circular reference when using it in catcierge_log.c