Added  a start action to replays.

This is redundant currently, but will be necessary for grouping random choices into the phase where they occurred.
Moved random commands into the body of the replay.

Now random numbers are associated with the action
 that most recently occurred.  This is a step on the way
 to making all replays JSON based
Moved all replays to being json based

The previous format was fine, but was not well
structured, nor in any kind of standard form.
JSON is well understood, easy to read, and easy to
 structure.

Still need to document the new file format.

 Also, the JSON based format can easily be extended to
 netplay (which is coming next)
Renamed ReplayActions to Moves; renamed some agents.

ReplayActions will also be used in net play, so they need
a new name, and actions is already being used in
 serialization.

Also moved Moves to the serialization package.

Agents all now inherit from the Agent class, which
allows for more regimented changes.  Also renamed
some agents with misleading names.
Refactored replays to use a decorator pattern.

Previously, replays relied on subclasses to record or
playback a game.  Now, a game can be recorded by
calling record(game) before the game starts, and a
replay can be played back by calling playback(replay)
after the replay is loaded.

 This allows for far greater flexibility in terms of how
 replays are recorded and played back (for example, it
 can now be used with the console app, or with future
 netplay games)
Allowed for reading the old replay format.

Adding some testing for translating between them.

The old format is now called "compact"

Added documentation of the new format, and updated
the documentation for the old format.
Merge remote-tracking branch 'origin/master'
Added the compact replay files to the repo
Merge remote-tracking branch 'origin/master'
Fix for replay files closing unexpectedly.
Updated replay documentation

Documented the replay package and linked it to the replay format
documentation.
Additional replay documentation
Fixes for types in replay documentation
Merge branch 'master' into effect_refactoring

Conflicts:
	hearthbreaker/game_objects.py
	hearthbreaker/replay.py
	replay_format.md
	tests/agents/trade/test_helpers.py
	tests/copy_tests.py
	tests/replay_tests.py
	tests/replays/card_tests/ArcaneMissilesWithSpellDamage.hsreplay
	tests/replays/card_tests/BlessingOfWisdom.hsreplay
	tests/replays/card_tests/DruidOfTheClaw.hsreplay
	tests/replays/card_tests/NobleSacrifice.hsreplay
	tests/replays/card_tests/Shadowform.hsreplay
	tests/replays/card_tests/SoulOfTheForest.hsreplay
	tests/replays/example.hsreplay
	tests/replays/random_choice.hsreplay
	tests/replays/stonetusk_innervate.hsreplay
	tests/replays/stonetusk_power.hsreplay
Transitioned several more minions over to the new effects system.

At this stage its mostly just a few tricky ones left.