Refine referee tests.

These are new tests to make the referee more robust.  Most of these
enhancements are based on watching various students implement the
referee incorrectly while passing all the existing tests.  These new
tests will make it harder for that to occur.
Create new tests for contest model

These tests are the beginning to ensure the contests are created
properly.  There are more functionality tests needed (e.g., ensure two
contests with the same name cannot be added), but the basics are in
place now.  This will provide a nice basis to ensure the contests are
written properly.
Initial routing tests.

These are starting to check that the proper routes have been defined.
The routes already should have been there, but this just
double-checks.  This could be more helpful down the road if we don't
define all the REST-ful routes, but depend on a subset.
More sophisticated validations of referee and contest

These tests make sure we are not putting bad values into the referee
or contest.  They are more complicated than the previous tests because
they consider the application logic and not just existence of data.
For example, the contest deadline must be in the future and the start
of the contest cannot start before the deadline.  There are several
other similar validations like this that just make sense when thinking
about the values that can be stored for these entities.
Fix illegal dates test.

There was a bug that had the illegal dates getting set up wrong, so
that start would be earlier than deadline and so it was possible to
find these dates as illegal via the wrong mechanism and still have an
error in them.  Fixed with this commit.
Use Timecop for making time work "properly"

By freezing time, we will be sure that the times we set for tests
doesn't advance before the tests against those same times execute.
Timecop simply makes sure that the time looks like it is fixed at some
point in time.  Now all references to now will return the same value
since time won't be advancing and things will "just work."

Possible Conflicts:
	Gemfile
	Gemfile.lock
Player model tests.

These tests check that the player model can properly keep track of all
the values that it is given.
merge errors