Refactored transactions. Before, propagation engines could implement custom concurrency models, but that's not needed anymore.

* Transaction and turn data are now decoupled. The engine interface no longer includes transaction related stuff.
* REACTIVE_DOMAIN macro now takes mode and engine separately.
Updated domain definitions in examples and benchmarks.
Updated domain definitions in tests.