revmoved duplicate code, added regions, added pieceSafety, changed to lightlist

GetAvailMoves(ChessColor color)->List<char[]> is now
GetAvailMoves(ChessColor color, bool checkAllowed)->LightList.   Use
false for getLegalMoves, and true to do as normal.

LightList is collection.

Added PieceNotSafe(board,color,piecePos)->bool to determine if a piece
at piecePos is safe based on its color.

Added Regions to help organize the reading of the code