Add chess.py with very basic functionality
Update ChessPiece class to be more generic
Update probing logic and board placing logic
Cleanup
Fix Rook and Bishop offsets logic
Update ChessBoard __str__ function, add problem solving functionality
Optimize ChessBoard deepcopy by using pickle-unpickle instead
Moving models to separate file, making them thinner for better memory consumption on large boards
Refactoring...

- Move ChessBoard pretty string creation to standalone function
- Use __copy__ in ChessBoard for quick object copying - even cPickle can OOM on large number of calls, lol
- Split problem solver function into 2 generator-based functions
- Add argument parser to convinient run program from CLI
- etc.
Update README