Record when each piece was moved last.

Necessary for en passant.
Implement movement for Pawn and allow transformation to Queen

In order to do that, I have to allow figures to be initialized at a given
position. This is useful for when the Queen should appear at the position of
the Pawn. However, it will could also be useful for setting up custom games.
Implement en passant positioning logic for Pawn
Reorganize imports, fix bug in Knight movement
Implement working en passant
Separate pawn state logic from moving and capturing

The game seems to work now!