Correctly check for missing castling rights or en passant information in Position::is_valid_fen

Incorrect checking of missing castling rights or en passant information was leading to Position::is_valid_fen declaring valid FEN strings as invalid.

For example, the following string would be declared as invalid:

`rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq`

This fix correctly checks for this missing information, and adds some tests including two which should fail without this fix. I wasn't able to run the tests because I ran into some problems with Xcode.

By the way, love the app!