Saving work for the night, initial rollback code in place.
Saving work, switching branches.
Swapping a single player, or both players on a match works as transaction.
Wrapping most in try catch.
Merge pull request #63 from delphian/refactor-add-contestants

Refactor add contestants