Added 'IMPROVE' task tag (low priority task)
Minor code formatting
Added Castling, PawnPromotion and undoing of moves