ensure edited ini file contents are always complete

Use method 9 from http://www.pixelbeat.org/docs/unix_file_replacement.html
to fulfill the AC properties of ACID, useful for
asynchronous readers and writers.
I.E. that readers will never get a partially written file,
and writers will not intersperse their output.
Caveats are noted in the source comments.

We also better handle any external issues like permissions etc.
when writing the ini file, so that only the error is printed
without a backtrace, which should also avoid any auto backtrace
reporting that may be enabled on the system.
add a man page
split out --options from synopsis

This is more extendable and better shows the structure
of the various mandatory base options.
send --help to stdout

This is more standard.
We send usage to stderr only when there is an error.
generate README and man page from --help

DRY the doc update process and generate the man page
and README using a shell script to combine the EXAMPLES
and help2man to convert the lot to man format.

We generate at dist time so as to avoid pushing the
help2man dependency to packagers.
We checkin the README so that it's easily available
and directly usuable by github.

Note when running `make dist` we should ensure that
docs are updated fully before that is run. I.E. make dist
should not result in any pending git changes, but
if that's the case it should be obvious and can be
addressed before release.