Remove a redundant function
Remove the memory allocation caused by the split function

This is step one. Removing the extra unnecessary stuff related
to the parseSurface function also showed some redundant
initialization that could be removed.
Finish the core of the board position parsing algorithm
Update the testing of parsePosition
Let's see if ASCII can be mixed with Unicode
Validate the parsed enpassant target square
Implement a new parsing style

Use a ubyte array instead of a string to transport the board
information around. The new encoding is about 56% of the size of
the previous while encoding the three-move repitition information,
which the previous method did not encode.
Finish enpassant target square parsing
Implement surface parsing
Make the test data immutable
Fix some parsing issues
Remove an enum on an array
Finish updating the parse testing that already existed

Parsing is now working.
Fix the movegen testing

Looks like parseSurface is not placing the pieces on the correct
squares.
Simplify the test constructor
Fix the types used for the api on BoardStatus
Some more fixes
Fix board parsing
Remove the unused serialization code
Simplify testing of parseSurface

More tests may be beneficial. But I need a break and cannot see
the overall design right now.