More specificity for contributors
Made all Warrior cards copyable and serializable as per #29
Added @littmuss to the contributors list.
Fixed the spelling of @littmus's name
Added a test for violet teacher and counterspell

The student should still be summoned, even if the spell is cancelled.
Reworked random number generation.

This is in preparation for upgraded replay ability,
which is tied to upcoming netplay functionality.

The ability to randomly choose between options was added, along with specifying what those options are

The replay will analyze those options, and record which option was chosen more directly than just a number in a list.  Thus, systems which use a different ordering for their minions and heroes will still be able to use the same replay format.
Made replay files more widely compatible

Now random choices of a character are saved with a direct
reference to the character, rather than just its index in
an arbitrary list.
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.
Added the compact replay files to the repo
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
Fixed links in replay_format.md
Merged the effect refactoring work into master

Completed redid how effects are done.  Moved to a tag based system, which can be
easily serialized, is almost compatible with Focus, and down the road, will
allow for JSON specified cards.