fixed logic for left castle - was using RightMove not LeftMove; added checks for FlagRightRookMoved and FlagLeftRookMoved; moved castle code into a separate function GetCastleMoves for readability
removed redundant logic for normal king moves; placed normal king moves into a separate function for readability