Allow engine to be injected.

The engine needs to be injected into targets so they can manipulate the
engine API directly.

Remove setters for attributes on Game. There was no need for these to be
externally settable.
Push up test class for wider usage.
Add EventPreventer for preventing events from being executed.

Adds a PreventEvent instruction to manipulate the engine.
Add PlaceInEffect and CancelEffect instruction.

Manages usage of CardsInEffect class.