cleanup
implement castling
record double pushes correctly