Implemented pawn promotion. Added messages to all exceptions.
Added test asserting that pawn promotions are performed correctly. Tweaked game logic to pass tests.
Added test asserting that blocked pawn promotions are not performed and don't modify the board. Test is passing.
Added test asserting that promotion to a king or a pawn is illegal. Test is passing.
Added test asserting that pieces which aren't pawns can't be promoted.
Added test to pawn evaluator verifying that pawn logic is correctly tracked.
Added test asserting that pawn promotion logic tracking isn't incorrectly triggered when pawns are moved anywhere but to the edge of the board. Test is passing.
Merge branch 'game-logic'
Merging latest game logic into master - pawn promotion is now implemented.