[TAV-315] Terminate runs cleanly.

A run can now be marked as to be stopped. This allows the delayed job running it
to clean up after itself properly. The Run object itself is not deleted but
marked as cancelled.

Runs cannot now be deleted while running; they must be cancelled first, then
destroyed.
Add some functional tests for interactions.

A few quick checks to make sure that routing through the proxy works and that
interactions are not assigned when they shouldn't be.