Fixed FEN parsing for the board "r3k2r/8/8/8/8/8/8/8 b kq"

The test case up until this commit tests a row with a single piece on it,
such as "1p6". However, there was another one-off error in the looping for
rows with more than one piece to be added, e.g. "r3k2r". The looping now
relies on a precalculated square value instead of calculating it each time
based on the row-index plus cursor.
The code is more straightforward to follow now.

Also changed the mapping of coordinates to data in Surface.
Had a difficult time seeing mentally what was going on in the previous method.