test: mo-satcycle: add new MO satisfaction cycle example

See the comments at the top of the file.
run.sh: don't silently ignore a non-executable file argument

If we use a file which exists but is not executable as an argument to
run.sh, run.sh will silently ignore it. This is wrong.

Instead, just check for existence of the file (or directory), and error
out with a "Permission denied" message later, when we try to run it.
test: addr-satcycle: add new address-based sat. cycle example

See the comments and assertion in the program for the description.
test: insanesync: convert to C++

The syntax is clearer this way, and I can make it more consistent with
the other satisfaction cycle examples I wrote.
test: insanesync: remove unnecessary casting
test: insanesync: consolidate lines