Allow interrupting CLI tests with ctrl+c
Allow interrupting CLI tests with ctrl+c

The `smr-integration-test` service (running PHPUnit) will sometimes
hang if the codebase is sufficiently broken. By default, PHP runs as
PID1 in the container, which is treated specially and is not able to
be interrupted with SIGINT -- and prevents us from killing a hanging
process.

To fix this, we use the `--init` feature of Docker to prevent PHP from
running as PID1, thus allowing it to be interrupted with SIGINT.

Ideally, this would not be needed and PHP would handle the SIGINT and
allow us to clean up the test execution properly, but it's not clear
that this is possible (or wanted by the PHPUnit devs).

See the discussions in:

https://github.com/sebastianbergmann/phpunit/issues/2788
https://github.com/docker-library/php/issues/505

For other non-daemonized CLI services (e.g. NPCs), we may want to
implement our own SIGINT handlers so that we can clean up properly
before terminating.

WARNING: Depending on where the PHPUnit process is killed, the test
database may be left in a corrupted state (due to not being able to
call the `tearDown` function) and, if so, will need to be reset before
it can be safely used again. This would probably also be prevented if
we were using database transactions.

smrealms/smr,hemberger/smr,hemberger/smr,smrealms/smr,hemberger/smr,hemberger/smr,smrealms/smr