Implement mkstemps() work-around for platforms lacking it

The function mkstemps() isn't available in all libc implementations. In
glibc it first became available in 2.11. This is likely true of many
non-LINUX platforms as well.

This work-around is taken from Git and was inspired by code in libiberty.

The files compat.[ch] have been created to hold this and other future
compatibility code.

This fixes breakage that was introduced with a0fdac29 "Create temporary
file with name as suffix."

Fixes #152

Signed-off-by: Drew Northup <n1xim.email@gmail.com>